plugin extension disable csp chrome javascript jquery google-chrome-extension

javascript - disable - csp extension



Extensiones de Google Chrome: ¿Cómo incluir jQuery en el script de contenido inyectado mediante programación? (5)

Estoy inyectando mi script de contenido desde la página de fondo cuando el usuario hace clic en el botón de acción del navegador , de esta manera:

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 forma de inyectar eso simultáneamente.


¿Qué tal si agregas esto a tu archivo de manifiesto?

"content_scripts": [ { "js": [ "jquery.js", "contentscript.js" ] } ],


ACTUALIZAR:

Ejecute el segundo script después de que el primero sea más preciso en términos de orden de guiones, el result es una matriz de resultados de ejecución del guión 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 script le dará la capacidad de acceder a Jquery dentro de su script.

chrome.tabs.executeScript(null, {file:''js/jquery-2.1.1.min.js''}); chrome.tabs.executeScript(null, {file:''js/myscript.js''});

Usted tiene más control sobre cómo se debe inyectar la secuencia de comandos como se describe here . allFrames propiedad allFrames es especialmente importante si desea allFrames script en todos los marcos del documento. Ignorarlo solo se inyectará en el marco superior. Como no se menciona en otras respuestas, adivina que te ayuda. Los scripts se pueden inyectar siempre agregándolo al manifiesto como se describe here .


Como tengo muchos scripts con muchas dependencias, utilizo una función concatenateInjection que toma tres parámetros:

//id: the tab id to pass to executeScript //ar: an array containing scripts to load ( index order corresponds to execution order) //scrpt (opzional): the last script to execute (if not provided, than the last script is the last insert in previous array) function concatenateInjections(id, ar, scrpt){ var i = ar.length; var idx = 0; function inject(idx){ idx++; if(idx <= i){ var f = ar[idx-1]; chrome.tabs.executeScript(id, { file: f }, function() { inject(idx); }); }else{ if(typeof scrpt === ''undefined'') return; chrome.tabs.executeScript(id, { file: scrpt }); } } inject(idx); }

y ejemplo de uso:

// id is tab id // sources: first execute jquery, than default.js and anime.js in the end var def = [ "lib/jquery-1.11.3.min.js", "lib/default.js", "injection/anime.js" ]; // run concatenate injections concatenateInjections(id, def);

Piensa que podría ser útil.

ACTUALIZAR

Versión con concat y cierre (más estética):

function concatenateInjections(id, ar, scrpt){ if( typeof scrpt !== ''undefined'' ) ar = ar.concat([scrpt]); var i = ar.length; var idx = 0 ; (function (){ var that = arguments.callee; idx++; if(idx <= i){ var f = ar[idx-1]; chrome.tabs.executeScript(id, { file: f }, function(){ that(idx);} ); } })(); }


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/


cada vez que quiera insertar dinámicamente jQuery, recomiendo este script

personalmente tengo una búsqueda personalizada de Chrome " $ " que reemplaza $ con

javascript: var jq = document.createElement(''script''); jq.onload = function(){}; jq.src = "https://code.jquery.com/jquery-2.1.1.min.js"; document.querySelector(''head'').appendChild(jq);

javascript: es solo la forma de ejecutar javascript desde la barra de direcciones

Uso esto en mi about:blank página en about:blank cuando estoy tratando de burlarme de alguna situación css rápidamente