Déjame explicarte mi problema. Actualmente estoy desarrollando una extensión de Google Chrome que inyecta una barra de herramientas como un iframe en cada página web.Escucha en una secuencia de comandos de contenido
El problema es que, en algunos casos, necesito ocultar la barra de herramientas, volver a mostrarla y cosas por el estilo. Basicelly estaba pensando en poner a mi oyente en mi página de fondo, pero es inútil porque esta página no puede manipular el objeto de forma gráfica. Así que mi plan era poner este oyente en un content_script (que puede manipular gráficamente el objeto). Pero el segundo problema es que un script de contenido en oposición a una página de fondo no se ejecuta todo el tiempo, sino solo una vez.
así que estoy preguntándome si es posible hacer un contenido en script suena como un fondo páginas, poniendo un bucle en él o algo por el estilo ...
Gracias de antemano.
He intentado esto:
manifest.json
{
"background_page" : "background.html",
"browser_action" :
{
"default_icon" : "images/extension.png"
//"popup" : "activateToolbar.html"
},
"content_scripts":
[ {
"all_frames": true,
"css": ["css/yourtoolbar.css"],
"js": ["js/jquery.js", "js/yourtoolbar.js", "js/listener.js"],
"matches": ["http://*/*"],
"run_at": "document_end"
} ],
"permissions" : ["tabs", "unlimitedStorage", "http://*/*", "notifications"],
"name" : "YourToolbar",
"version" : "1.1",
"description" : "Make your own Toolbar"
}
toolbar.html
<!-- Close Button -->
<a href="javascript:hideToolbar()"><input type="image" src="images/close.png" name="close" width="18" height="18"></a>
Tool.js
function hideToolbar()
{
chrome.extension.sendRequest({action : "hideToolbar"});
window.webkitNotifications.createHTMLNotification('instantMessage.html', 'Ask Show Menu').show();
}
listener.js
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
if(request.action)
{
$('body').remove();
console.log('Received Start');
alert(request.action);
console.log('Received End');
}
else
{
console.log('nothing');
alert('Not For Me [listener.js]');
}
});
background.js
chrome.extension.onRequest.addListener(function(request, sender, sendResponse)
{
if(request.newTab)
{
// Create a new Tab
chrome.tabs.create({url: request.newTab});
}
else if(request.newWindow)
{
// Create a new Window
chrome.windows.create({url: request.newWindow});
}
else if(request.action)
{
chrome.tabs.getAllInWindow(null, function(tabs) {
$.each(tabs, function() {
chrome.tabs.sendRequest(this.id, {"action":"hideToolbar"});
});
});
}
});
pero el problema es que el addListener no bloqueó la ejecución y él simplemente no entendió nada ...
¿Puede mostrarnos cómo está enviando las solicitudes a este script de contenido? – serg