gpt4 book ai didi

javascript - oAuth 交换后关闭 Chrome 窗口

转载 作者:行者123 更新时间:2023-12-01 00:36:29 25 4
gpt4 key购买 nike

我有打开窗口的代码

let mywindow = window.open("utl", "title", "resizable=yes,width=600,height=400,toolbar=no,titlebar=no,menubar=no,scrollbars=yes");

我想访问窗口当前的URL,我已经尝试过:

  • 窗口位置
  • window.document.url

每次尝试都会返回:

Uncaught DOMException: Blocked a frame with origin "https://mail.google.com" from accessing a cross-origin frame. at eval (eval at (chrome-extension://dapaeellgmlagjcopljjcfiadalafdil/extension.js:57053:21), <anonymous>:1:10) at chrome-extension://dapaeellgmlagjcopljjcfiadalafdil/extension.js:57053:21

我正在进行 oAuth token 交换,当窗口命中重定向 URI 时,我需要自动关闭窗口。

我可以通过哪些方式实现这一目标?

最佳答案

您可以使用 chrome.tabs 来执行此操作API,这里是一个例子:

const orgURL = '<URL>';
chrome.tabs.create({url: orgURL}, createdTab => {
function updateListener(tabId, tab) => {
if (tabId == createdTab.id && tab.url !== orgURL) {
const redirectURL = tab.url;
// Do something with the redirect URL
chrome.tabs.remove(tabId); // Close the tab.
chrome.tabs.onUpdated.removeListener(updateListener);
}
}
chrome.tabs.onUpdated.addListener(updateListener);
});

不要忘记将 chrome.tabs 权限添加到 list 中。

如果您确实想使用新窗口而不是当前窗口中的新选项卡来执行此操作,请查看 chrome.windows API。

以下是使用 chrome.windows API 的示例:

const orgURL = "<URL>"
chrome.windows.create({ url: orgURL }, win => {
if (win.tabs.length) {
const firstTab = window.tabs[0];
if (firstTab.url !== orgURL) { // the redirect already happen
const redirectURL = window.tabs[0].url;
// Do something with the redirect URL
} else {// the redirect hasn't happen yet, listen for tab changes.
function updateListener(tabId, tab) => {
if (tabId == firstTab.id && tab.url !== orgURL) {
const redirectURL = tab.url;
// Do something with the redirect URL
chrome.windows.remove(win.id); // Close the window.
chrome.tabs.onUpdated.removeListener(updateListener);
}
}
chrome.tabs.onUpdated.addListener(updateListener);
}
}
})

关于javascript - oAuth 交换后关闭 Chrome 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58092090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com