Estoy inyectando mi secuencia de comandos de contenido desde la página de fondo cuando el usuario hace clic en el botón de acción del navegador , así:
chrome.browserAction.onClicked.addListener(function (tab) { chrome.tabs.executeScript(null, { file: "content.js" }); }); Entonces, ¿cómo puedo acceder a jQuery desde dentro de mi content.js ? No veo una manera de inyectar eso simultáneamente.
Qué pasa:
chrome.tabs.executeScript(null, { file: "jquery.js" }, function() { chrome.tabs.executeScript(null, { file: "content.js" }); });Puede descargar "jquery.js" desde aquí: http://jquery.com/download/
¿Qué tal agregar esto a su archivo de manifiesto?
"content_scripts": [ { "js": [ "jquery.js", "contentscript.js" ] } ],ACTUALIZAR:
Ejecutar la segunda secuencia de comandos después de la primera sería más preciso en términos de orden de las secuencias de comandos, el result es una matriz de resultados de la ejecución de la secuencia de comandos en la lista de pestañas.
chrome.tabs.executeScript(null, {file:'js/jquery-2.1.1.min.js'}, function(result){ chrome.tabs.executeScript(null, {file:'js/myscript.js'}); });ANTIGUO:
Inyectar Jquery seguido de su secuencia de comandos le dará la posibilidad de acceder a Jquery dentro de su secuencia de comandos.
chrome.tabs.executeScript(null, {file:'js/jquery-2.1.1.min.js'}); chrome.tabs.executeScript(null, {file:'js/myscript.js'}); Tiene más control sobre cómo se debe inyectar el script como se describe aquí . La propiedad allFrames es especialmente importante si desea inyectar secuencias de comandos en todos los marcos del documento. Ignorarlo solo se inyectará en el marco superior. Como no se menciona en otras respuestas, supongo que te ayuda. Los scripts se pueden inyectar siempre agregándolos al manifiesto como se describe aquí .