Existe-t-il un moyen plus simple (natif peut-être?) D'inclure un fichier de script externe dans le navigateur Google Chrome?
Actuellement, je le fais comme ceci:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
javascript
google-chrome
console
include
technocake
la source
la source
Réponses:
appendChild()
est une manière plus native:la source
TypeError: Property 'appendChild' of object #<HTMLHeadElement> is not a function
javascript_code
</code> pour injecter du code javascript directUtilisez-vous un framework AJAX? En utilisant jQuery, ce serait:
Si vous n'utilisez aucun framework, voyez la réponse de Harmen.
(Peut-être que cela ne vaut pas la peine d'utiliser jQuery juste pour faire cette chose simple ( ou peut-être que c'est le cas ) mais si vous l'avez déjà chargé, vous pourriez aussi bien l'utiliser. J'ai vu des sites Web qui ont jQuery chargé par exemple avec Bootstrap mais toujours utiliser l'API DOM directement d'une manière qui n'est pas toujours portable, au lieu d'utiliser le jQuery déjà chargé pour cela, et beaucoup de gens ne sont pas conscients du fait que même
getElementById()
ne fonctionne pas de manière cohérente sur tous les navigateurs - voir cette réponse pour plus de détails. )METTRE À JOUR:
Cela fait des années que j'ai écrit cette réponse et je pense qu'il vaut la peine de souligner ici qu'aujourd'hui vous pouvez utiliser:
pour charger dynamiquement des scripts. Ceux-ci peuvent être pertinents pour les personnes qui lisent cette question.
Voir aussi: La conférence Fluent 2014 de Guy Bedford: Workflows pratiques pour les modules ES6 .
la source
$.getScript('script.js');
ou$.getScript('../scripts/script.js');
alors il est relatif au document mais il peut aussi charger des URL absolues, par exemple.$.getScript('https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore.js');
Dans les navigateurs modernes, vous pouvez utiliser la récupération pour télécharger la ressource ( documents Mozilla ), puis l'évaluation pour l'exécuter.
Par exemple, pour télécharger Angular1, vous devez taper:
la source
eval
, avec le message suivant: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:".
Dans Chrome, votre meilleure option pourrait être l'onglet Extraits de code sous Sources dans les outils de développement.
Il vous permettra d'écrire et d'exécuter du code, par exemple, dans une page about: blank.
Plus d'informations ici: https://developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl=en
la source
Pour faire suite à la réponse de @ maciej-bukowski ci - dessus ^^^ , dans les navigateurs modernes (printemps 2017) qui prennent en charge async / attente, vous pouvez charger comme suit. Dans cet exemple, nous chargeons la bibliothèque de chargement html2canvas:
Si vous exécutez l'extrait de code puis ouvrez la console de votre navigateur, la fonction html2canvas () devrait maintenant être définie.
la source
la source
Si quelqu'un ne parvient pas à se charger parce que le script hes viole le script-src "Content Security Policy" ou "parce unsafe-eval 'n'est pas autorisé", je vous conseillerai d'utiliser mon joli petit module-injecteur comme extrait de dev-tools, alors vous pourrez charger comme ceci:
cette solution fonctionne car:
la source
J'utilise ceci pour charger un objet knockout ko dans la console
ou héberger localement
la source
Installez tampermonkey et ajoutez le UserScript suivant avec un (ou plusieurs)
@match
avec une URL de page spécifique (ou une correspondance de toutes les pages :)https://*
par exemple:Chaque fois que vous avez besoin de la bibliothèque sur la console ou sur un extrait, activez le script UserScript spécifique et actualisez-le.
Cette solution empêche la pollution de l'espace de noms . Vous pouvez utiliser des espaces de noms personnalisés pour éviter d'écraser accidentellement les variables globales existantes sur la page.
la source