Heim >Web-Frontend >js-Tutorial >Warum werden mit innerHTML eingefügte Skripte nicht immer ausgeführt, und wie kann ich das beheben?
Mit innerHTML eingefügte Skripte ausführen
Das Einfügen von Skripten in eine Webseite mithilfe von innerHTML kann eine Herausforderung sein, da die Skripte möglicherweise im DOM angezeigt werden scheitern an der Ausführung. Dies liegt an der unterschiedlichen Art und Weise, wie Browser die Skriptausführung handhaben, wenn sie einer Seite dynamisch hinzugefügt werden.
Um dies zu umgehen, besteht eine Methode darin, das DOM rekursiv nach Skriptelementen zu durchsuchen und diese durch ausführbare Klone zu ersetzen. Hier ist eine Schritt-für-Schritt-Erklärung der rekursiven Skript-Ersetzungsfunktion:
function nodeScriptReplace(node) {
function nodeScriptClone(node) {
function nodeScriptIs(node) {
Beispielverwendung:
Um mit innerHTML eingefügte Skripte auszuführen, rufen Sie nodeScriptReplace() auf. Funktion im Textkörper des Dokuments (oder eines anderen gewünschten Containers).
nodeScriptReplace(document.getElementsByTagName("body")[0]);
Durch die Verwendung dieses rekursiven Ansatzes werden alle während des Suchvorgangs angetroffenen Skriptelemente durch ausführbare Klone ersetzt, wodurch eine ordnungsgemäße Skriptausführung sichergestellt wird eingefügt mit innerHTML.
Das obige ist der detaillierte Inhalt vonWarum werden mit innerHTML eingefügte Skripte nicht immer ausgeführt, und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!