Je veux inclure dynamiquement une balise de script dans une page Web, mais je n'ai aucun contrôle sur son src, donc src = "source.js" peut ressembler à ceci.
document.write('<script type="text/javascript">')
document.write('alert("hello world")')
document.write('</script>')
document.write('<p>goodbye world</p>')
Maintenant ordinairement mettre
<script type="text/javascript" src="source.js"></script>
dans la tête fonctionne bien, mais y a-t-il un autre moyen d'ajouter dynamiquement source.js en utilisant quelque chose comme innerHTML?
javascript
src
document.write
Cadell Christo
la source
la source
Réponses:
la source
Vous pouvez utiliser la
document.createElement()
fonction comme ceci:la source
Il y a la
onload
fonction, qui pourrait être appelée lorsque le script s'est chargé avec succès:la source
un joli petit script que j'ai écrit pour charger plusieurs scripts:
usage:
la source
Vous pouvez essayer de suivre l'extrait de code.
la source
C'est du travail pour moi.
Tu peux le vérifier.
la source
Lorsque les scripts sont chargés de manière asynchrone, ils ne peuvent pas appeler document.write. Les appels seront simplement ignorés et un avertissement sera écrit sur la console.
Vous pouvez utiliser le code suivant pour charger le script dynamiquement:
Cette approche ne fonctionne bien que lorsque votre source appartient à un fichier séparé.
Mais si vous avez du code source en tant que fonctions en ligne que vous souhaitez charger dynamiquement et que vous souhaitez ajouter d'autres attributs à la balise de script, par exemple la classe, le type, etc., alors l'extrait de code suivant vous aidera:
la source
Eh bien, il existe plusieurs façons d'inclure du javascript dynamique, j'utilise celui-ci pour de nombreux projets.
Vous pouvez appeler create une fonction universelle qui peut vous aider à charger autant de fichiers javascript que nécessaire. Il y a un tutoriel complet à ce sujet ici.
Insérer du Javascript dynamique de la bonne manière
la source
la seule façon de faire est de remplacer
document.write
par votre propre fonction qui ajoutera des éléments au bas de votre page. C'est assez simple avec jQuery:Si vous avez du HTML à venir dans document.write en morceaux comme l'exemple de question, vous aurez besoin de tamponner les
htmlToWrite
segments. Peut-être quelque chose comme ça:la source
Je l'ai essayé en ajoutant récursivement chaque script
Remarque Si vos scripts sont dépendants les uns après les autres, la position devra être synchronisée.
La dépendance majeure doit être en dernier dans le tableau afin que les scripts initiaux puissent l'utiliser
la source
Charge les scripts qui dépendent les uns des autres dans le bon ordre.
Basé sur la réponse de Satyam Pathak , mais correction du chargement. Il a été déclenché avant le chargement du script.
la source
Voici un extrait minifié, même code que Google Analytics et Facebook Pixel utilise:
Remplacez
https://example.com/foo.js
par votre chemin de script.la source
Un one-liner (pas de différence essentielle avec les réponses ci-dessus cependant):
la source