Einfügen von Skripten in eine Seite mithilfe von innerHTML in ein
Der im Beispielcode bereitgestellte HTML-Code demonstriert die versuchte Ausführung eines Skripts innerhalb eines
Um dieses Problem zu beheben, stellen wir eine Methode vor, die alle nicht ausführbaren Skripte rekursiv durch ausführbare ersetzt. Diese als nodeScriptReplace bekannte Methode durchläuft den DOM-Baum und identifiziert Skriptelemente. Wenn ein nicht ausführbares Skript gefunden wird, klont es das Skript, weist ihm ausführbaren Inhalt zu und ersetzt das ursprüngliche Skriptelement, sodass es ausgeführt werden kann.
Zusätzlich erstellt die Funktion „nodeScriptClone“ durch Extrahieren ein ausführbares Skriptelement das innerHTML des nicht ausführbaren Skripts und das Festlegen seiner Attribute. Diese Attribute werden an das neue ausführbare Skript übertragen, um ein ordnungsgemäßes Verhalten sicherzustellen.
Die Funktion „nodeScriptIs“ prüft, ob ein bestimmter Knoten ein Skriptelement ist, indem sie seinen Tag-Namen untersucht.
Um das Skript auszuführen und anzuzeigen Um die „Hi“-Warnung zu erhalten, rufen Sie einfach nodeScriptReplace im Stammelement der Seite auf. Das folgende Code-Snippet veranschaulicht dies:
nodeScriptReplace(document.getElementsByTagName("body")[0]);
Diese Methode bietet einen robusten Mechanismus zum Ausführen von Skripten, die mithilfe von innerHTML zu einer Seite hinzugefügt wurden, und stellt so deren beabsichtigte Funktionalität sicher.
Das obige ist der detaillierte Inhalt vonWarum werden über innerHTML hinzugefü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!