Próbuję utworzyć rozszerzenie Chrome, które zastąpi Delicious bookmarklet. Wiem, że istnieje już rozszerzenie, które to robi, ale problem z tym rozszerzeniem polega na tym, że po dodaniu zakładki do strony, okno podręczne pozostaje otwarte (w przeciwieństwie do używania bookmarkletu, gdzie popup zamyka się po przesłaniu formularza. rozbudowa i wpadł na ten sam problemZamknięcie okna popup utworzonego przez rozszerzenie Google Chrome
Oto mój kod.
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');
}
Kiedy klikam przycisk Delicious, popup pojawia się w porządku i mogę zapisać zakładkę, ale po kliknięciu "Zapisz", popup nie zamyka się. Oba alarmy pojawiają się, ale self.close()
nic nie robi. Po usunięciu zaznaczenia adresu URL w pliku contentscript.js wyskakujące okienko pojawia się normalnie, pierwszy alert uruchamia się natychmiast, a okienko zamyka się (tak jak powinno).
Dlaczego to nie działa? Wygląda na to, że Chrome uniemożliwia mi wykonanie self.close(). Czy Delicious robi coś? Czy to coś innego?
Pliki są tutaj jeśli chcesz je: [link usunięty, ponieważ drop.io wyszedł z działalności]
Okno automatycznie zamyka się dla mnie. Używam dość domyślnej wersji Chrome, jeśli to robi jakąkolwiek różnicę. –