J'ai besoin d'utiliser appendChild()
ou jQuey's append()
pour ajouter des <script>
dans le document. D'après ce que je peux voir, ces éléments sont supprimés. Quelqu'un sait comment faire ?
Plus un en raison de la mise en œuvre native
J'ai besoin d'utiliser appendChild()
ou jQuey's append()
pour ajouter des <script>
dans le document. D'après ce que je peux voir, ces éléments sont supprimés. Quelqu'un sait comment faire ?
Essayez ça :
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://somedomain.com/somescript";
$("head").append(s);
Notez que le script sera chargé et que vous pourrez accéder aux variables qu'il contient, mais que vous ne verrez pas l'image réelle de l'utilisateur. <script>
dans le DOM.
Cette méthode génère un avertissement indiquant que le chargement synchrone des scripts est préjudiciable à l'expérience utilisateur. En supposant que vous allez vouloir appeler quelque chose dans ce javascript que vous chargez, il devrait être chargé de manière asynchrone et une méthode de callback employée pour exécuter votre code qui dépend du nouveau scripts. stackoverflow.com/questions/7718935/
Cool mais comment ça marche ? Je connais cette correction depuis environ un an et je n'en ai toujours aucune idée.
La seule raison pour laquelle vous ne pouvez pas faire $('<script></script>')
c'est parce que la chaîne </script>
n'est pas autorisé en javascript parce que la couche DOM ne peut pas analyser ce qui est js et ce qui est html. Vous pouvez même faire $('<script><\/script>')
pour contourner cette limitation
Si vous devez ajouter un script pour qu'il soit analysé, vous pouvez faire comme Google pour son bouton +1.
(function() {
var po = document.createElement('script');
po.type = 'text/javascript';
po.async = true;
po.src = 'link to your script here';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
Joliment fait... où devez-vous placer cet appel de fonction ? cela a-t-il de l'importance ? head
body
Cela a marché pour moi
<script>
$('head').append("<script>your script content here<\/script>");
</script>
Notez que le "/" de l'intérieur </script>
s'est échappé pour être "<\/script>"
. S'il ne l'est pas, il ferme en fait l'accès à l'extérieur. <script>
étiquette.
Le script ajouté ne sera pas visible mais sera exécuté. J'espère que cela vous aidera.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
La deuxième réponse à cette question avec un vote de 67 est une très bonne réponse qui vous dira tout ce que vous devez savoir.
2 votes
Écrire simplement
<script><\/script>
au lieu de<script></script>