tag manager google disable csp chrome google-chrome google-chrome-extension

google-chrome - manager - tag assistant chrome



Inyectar HTML en una página desde un script de contenido (5)

Este es mi enfoque:

var xmlHttp = null; xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", chrome.extension.getURL ("src/inject/inject.html"), false ); xmlHttp.send( null ); var inject = document.createElement("div"); inject.innerHTML = xmlHttp.responseText document.body.insertBefore (inject, document.body.firstChild);

Sin jQuery, etc.

Estoy construyendo una extensión de Chrome y tengo un requisito para superponer una burbuja de html en la parte superior de algunos sitios web. Por el momento estoy usando un JQuery .Get Para extraer el html de mi servidor. Para mejorar el rendimiento, me pregunto si es posible incluir el html como un archivo en el directorio de extensión y acceder a la fuente directamente desde allí. ¿Alguien sabe si esto es posible?

ACTUALIZAR

La sugerencia de Rob hace el trabajo (ver respuesta aceptada). El único paso adicional es registrar el archivo en el manifiesto en web_accessible_resources .

{ ... "web_accessible_resources": [ "myimportfile1.html", "myimportfile2.html" ], ... }


Otra forma de hacerlo es usar la nueva Fetch API :

Si el nombre del archivo es modal.html - actualice manifest.json consecuencia

"web_accessible_resources": [ "modal.html", ],

e inyectarlo así:

fetch(chrome.extension.getURL(''/modal.html'')) .then(response => response.text()) .then(data => { document.body.innerHTML += data; // other code // eg update injected elements, // add event listeners or logic to connect to other parts of the app }).catch(err => { // handle error });


Sí, eso es posible Use chrome.extension.getURL para obtener una URL absoluta para el recurso. Por ejemplo:

Paso 1:

$.get(chrome.extension.getURL(''/template.html''), function(data) { $(data).appendTo(''body''); // Or if you''re using jQuery 1.8+: // $($.parseHTML(data)).appendTo(''body''); });

Paso 2:

Registre el recurso en el manifiesto en web_accessible_resources: consulte https://developer.chrome.com/extensions/manifest#web_accessible_resources (proporcionado por @QFDev)


Si usa Angular en su extensión de Chrome, puede utilizar ng-include

var injectedContent = document.createElement("div"); injectedContent.setAttribute("ng-include", ""); //ng-include src value must be wrapped in single quotes injectedContent.setAttribute("src", "''" + chrome.extension.getURL("template.html") + "''"); existingElement.appendChild(injectedContent);


Yo uso este código Son solo 3 líneas de código y no necesitas basura de jquery.

var iframe = document.createElement (''iframe''); iframe.src = chrome.extension.getURL (''iframe.html''); document.body.appendChild (iframe);