gpt4 book ai didi

javascript - 关闭由 Google Chrome 扩展程序创建的弹出窗口

转载 作者:行者123 更新时间:2023-11-30 06:48:01 25 4
gpt4 key购买 nike

我正在尝试创建一个 Chrome 扩展程序来替代 Delicious 书签。我知道已经有一个扩展可以做到这一点,但该扩展的问题是在您为网站添加书签后,弹出窗口保持打开状态(与使用小书签相反,弹出窗口在提交表单后自行关闭。我重新创建了扩展并遇到了同样的问题。

这是我的代码:

list .json:

{
"name": "Delicious",
"version": "1.0",
"description": "Bookmark a site on Delicious",
"background_page": "background.html",
"permissions": [
"tabs"
],
"browser_action": {
"default_icon": "delicious.png"
},
"content_scripts": [
{
"matches": ["http://www.delicious.com/save*"],
"js": ["contentscript.js"]
}
]
}

background.html:

<html><script>
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.getSelected(null, function(tab) {
w = window.open('http://delicious.com/save?url='+
encodeURIComponent(tab.url)+
'&title='+encodeURIComponent(tab.title)+
'&v=5&noui=1&jump=close',
'deliciousuiv5',
'location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550');
});
});
</script></html>

contentscript.js:

if (document.URL == 'http://www.delicious.com/save')
{
alert('closing...');
self.close();
alert('should have closed by now');
}

当我点击 Delicious 按钮时,弹出窗口正常出现,我可以保存书签,但在我点击“保存”后,弹出窗口没有关闭。两个警报都出现了,但是 self.close() 似乎什么也没做。当我删除 contentscript.js 中的 URL 检查时,弹出窗口正常出现,第一个警报立即触发,然后弹出窗口自行关闭(应该如此)。

为什么这行不通? Chrome 似乎并没有阻止我执行 self.close()。 Delicious 在做什么?还是别的?

如果您需要,文件在这里:[链接已删除,因为 drop.io 倒闭了]

最佳答案

试试 window.close(),但这可能也行不通。

当您创建常规窗口(而不是浏览器操作弹出窗口)时,您可以使用背景页面中的 chrome.tabs.remove() 关闭它。您还可以从背景页面检测此窗口。像这样的东西:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if(changeInfo.status == "loading") {
if(tab.url == "http://www.delicious.com/save") {
chrome.tabs.remove(tabId);
}
}
});

我不确定 Chrome 是如何处理创建的窗口的——作为选项卡或窗口。如果是 windows 那么上面的代码会有点不同。

关于javascript - 关闭由 Google Chrome 扩展程序创建的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399117/

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