我试图创建一个Chrome扩展程序,用来替换Delicious书签工具。我知道已经有一个这样的扩展程序,但它的问题在于在你收藏一个网站后,弹出窗口会一直保持打开状态(与使用书签工具不同,那时弹出窗口会在提交表单后自动关闭)。我重新创建了这个扩展程序,但遇到了同样的问题。
这是我的代码:
manifest.json:
这是我的代码:
manifest.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 停业,链接已删除]