Heim >Web-Frontend >js-Tutorial >Wie führe ich über .innerHTML hinzugefügte Inline-Skripte aus?
Ausführen von über .innerHTML eingefügten Inline-Skripten
F: Wie kann ich mithilfe der .innerHTML-Eigenschaft in ein Element eingefügte Skripte ausführen?
A: Um über .innerHTML eingefügte Skripte auszuführen, befolgen Sie diese Schritte:
Über Skripte iterieren: Schleife durch das <script> Elemente und führen Sie die folgenden Schritte für jedes Skript aus:</script>
function setInnerHTML(elm, html) { elm.innerHTML = html; Array.from(elm.querySelectorAll("script")) .forEach(oldScriptEl => { const newScriptEl = document.createElement("script"); Array.from(oldScriptEl.attributes).forEach(attr => { newScriptEl.setAttribute(attr.name, attr.value) }); const scriptText = document.createTextNode(oldScriptEl.innerHTML); newScriptEl.appendChild(scriptText); oldScriptEl.parentNode.replaceChild(newScriptEl, oldScriptEl); }); // Simplified for clarity (not part of the setInnerHTML function) const htmlWithScript = "<script type='"text/javascript"'>alert('test');</script><strong>test</strong>"; setInnerHTML(document.querySelector('div'), htmlWithScript); }
Diese Technik umgeht die Einschränkungen der direkten Zuweisung zu innerHTML und ermöglicht die erfolgreiche Ausführung von dynamisch eingefügten Inline-Skripten.
Das obige ist der detaillierte Inhalt vonWie führe ich über .innerHTML hinzugefügte Inline-Skripte aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!