Scripting avec innerHTML : une solution de contournement pour les limitations d'exécution du navigateur
Pour tenter de charger dynamiquement des scripts dans une page Web, les développeurs peuvent utiliser l'outil propriété innerHTML des éléments HTML, tels que
Pour résoudre ce problème, une méthode récursive a été conçue pour remplacer efficacement les scripts non exécutables. avec des homologues exécutables. Cette méthode, décrite ci-dessous, garantit une exécution fidèle lors de l'insertion via innerHTML :
function nodeScriptReplace(node) { if (nodeScriptIs(node)) { node.parentNode.replaceChild(nodeScriptClone(node), node); } else { var i = -1, children = node.childNodes; while (++i < children.length) { nodeScriptReplace(children[i]); } } return node; } function nodeScriptClone(node) { var script = document.createElement("script"); script.text = node.innerHTML; var i = -1, attrs = node.attributes, attr; while (++i < attrs.length) { script.setAttribute((attr = attrs[i]).name, attr.value); } return script; } function nodeScriptIs(node) { return node.tagName === 'SCRIPT'; }
Utilisation : En invoquant la méthode nodeScriptReplace() sur l'élément body du document, tous les scripts non exécutables seront remplacés par leur homologues exécutables, permettant une exécution transparente du script :
nodeScriptReplace(document.getElementsByTagName("body")[0]);
Cette technique contourne efficacement les limitations du navigateur concernant l'exécution du script lorsqu'il est inséré via innerHTML, permettant aux développeurs de charger et exécuter dynamiquement des scripts comme vous le souhaitez.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!