Estoy intentando crear una extensión de Chrome que sustituya al marcador de Delicious. Sé que ya hay una extensión que lo hace, pero el problema con esa extensión es que después de marcar un sitio, la ventana emergente permanece abierta (en lugar de usar el bookmarklet, donde la ventana emergente se cierra después de enviar el formulario. Recreé el extensión y se encontró con el mismo problemaVentana emergente de cierre creada por la extensión de Google Chrome
Aquí está mi código:.
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');
}
Al hacer clic en el botón delicioso, la ventana emergente sube muy bien y puedo guardar el marcador, pero después de hacer clic en "Guardar", la ventana emergente no se cierra. Ambas alertas aparecen, pero self.close()
no parece hacer nada. Cuando elimino la comprobación de URL en contentscript.js, la ventana emergente aparece normalmente, la primera alerta se dispara de inmediato y luego la ventana emergente se cierra sola (como debería).
¿Por qué no funciona? Parece que Chrome no me impide hacer self.close(). ¿Está haciendo Delicious algo? ¿Es algo más?
Los archivos están aquí si quieres ellos: [link eliminado por drop.io salió del negocio]
La ventana se cierra automáticamente. Estoy ejecutando una versión bastante predeterminada de Chrome si hace alguna diferencia. –