¿Hay una manera más simple (¿nativa quizás?) De incluir un archivo de script externo en el navegador Google Chrome?
Actualmente lo estoy haciendo así:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
javascript
google-chrome
console
include
Technocake
fuente
fuente
Respuestas:
appendChild()
es una forma más nativa:fuente
TypeError: Property 'appendChild' of object #<HTMLHeadElement> is not a function
javascript_code
</code> para inyectar código javascript directo¿Utiliza algún marco AJAX? Usando jQuery sería:
Si no está utilizando ningún marco, vea la respuesta de Harmen.
(Tal vez no valga la pena usar jQuery solo para hacer esta cosa simple ( o tal vez lo sea ), pero si ya lo tiene cargado, también podría usarlo. He visto sitios web que tienen jQuery cargado, por ejemplo, con Bootstrap pero aún así use la API DOM directamente de una manera que no siempre sea portátil, en lugar de usar el jQuery ya cargado para eso, y muchas personas no son conscientes del hecho de que incluso
getElementById()
no funciona de manera consistente en todos los navegadores; vea esta respuesta para más detalles. )ACTUALIZAR:
Han pasado años desde que escribí esta respuesta y creo que vale la pena señalar aquí que hoy puedes usar:
cargar dinámicamente scripts. Esos pueden ser relevantes para las personas que leen esta pregunta.
Véase también: La charla 2014 con fluidez de Guy Bedford: Flujos de trabajo prácticos para módulos ES6 .
fuente
$.getScript('script.js');
o$.getScript('../scripts/script.js');
entonces es relativo al documento pero también puede cargar URL absolutas, por ejemplo.$.getScript('https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore.js');
En los navegadores modernos, puede usar la búsqueda para descargar recursos ( documentos de Mozilla ) y luego evaluar para ejecutarlos.
Por ejemplo, para descargar Angular1, debe escribir:
fuente
eval
, con el siguiente mensaje:VM1929:11 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
En Chrome, su mejor opción podría ser la pestaña Fragmentos en Fuentes en las Herramientas para desarrolladores.
Le permitirá escribir y ejecutar código, por ejemplo, en una página about: blank.
Más información aquí: https://developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl=en
fuente
Como seguimiento a la respuesta de @ maciej-bukowski arriba ^^^ , en los navegadores modernos a partir de ahora (primavera de 2017) que admiten async / wait, puede cargar de la siguiente manera. En este ejemplo, cargamos la biblioteca load html2canvas:
Si ejecuta el fragmento y luego abre la consola de su navegador, debería ver que la función html2canvas () ahora está definida.
fuente
fuente
Si alguien no se carga porque el script viola la "Política de seguridad de contenido" del script-src o "porque no se permite la evaluación insegura", aconsejaré usar mi inyector de módulo bastante pequeño como un fragmento de herramientas de desarrollo, entonces podrás cargar así:
Esta solución funciona porque:
fuente
Lo uso para cargar el objeto knockout ko en la consola
o host localmente
fuente
Instale tampermonkey y agregue el siguiente UserScript con uno (o más)
@match
con URL de página específica (o una coincidencia de todas las páginas :) porhttps://*
ejemplo:Siempre que necesite la biblioteca en la consola o en un fragmento, active el UserScript específico y actualícelo.
Esta solución previene la contaminación del espacio de nombres . Puede usar espacios de nombres personalizados para evitar sobrescribir accidentalmente las variables globales existentes en la página.
fuente