Sto provando a creare un'estensione Chrome che sostituisce il bookmarklet Delicious. So che c'è già un'estensione che lo fa, ma il problema con tale estensione è che dopo aver aggiunto un segnalibro a un sito, la finestra popup rimane aperta (invece di usare il bookmarklet, dove il popup si chiude dopo aver inviato il modulo. estensione e corse nello stesso problemaChiusura finestra popup creata da Google Estensione Chrome
Ecco il mio codice:.
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');
}
quando clicco sul pulsante di Delicious, il popup viene sull'indennità e posso salvare il preferito ma dopo faccio clic su "Salva", il pop-up non chiude. Entrambi gli avvisi vengono visualizzati, ma l'self.close()
non sembra fare nulla. Quando rimuovo il controllo dell'URL in contentscript.js, il pop-up appare normalmente, il primo avviso si attiva subito e quindi il popup si chiude (come dovrebbe).
Perché non funziona? Non sembra che Chrome mi impedisca di eseguire self.close(). Delicious sta facendo qualcosa? È qualcos'altro?
I file sono qui se li volete: [link rimosso perché drop.io cessato l'attività]
La finestra si chiude automaticamente. Sto eseguendo una versione abbastanza predefinita di Chrome se questo fa alcuna differenza. –