Deliciousブックマークレットの代わりとなるChrome拡張機能を作成しようとしています。それを行う拡張機能がすでにあることは知っていますが、その拡張機能の問題は、サイトをブックマークした後、ポップアップウィンドウが開いたままになることです(フォームの送信後にポップアップが自動的に閉じるブックマークレットを使用するのとは対照的です。拡張と同じ問題に遭遇しました。
これが私のコードです:
マニフェスト.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');
}
「おいしい」ボタンをクリックすると、ポップアップが正常に表示され、ブックマークを保存できますが、「保存」をクリックしてもポップアップが閉じません。両方のアラートが表示されますが、self.close()
何も実行されていないようです。contentscript.jsでURLチェックを削除すると、ポップアップが通常どおりに表示され、最初のアラートがすぐに発生し、次にポップアップが自動的に閉じます(必要に応じて)。
なぜこれが機能しないのですか?Chromeがself.close()の実行を妨げているようには見えません。Deliciousは何かをしていますか?それは何か他のものですか?
必要に応じてファイルはここにあります:[drop.ioが廃業したためリンクが削除されました]