innerHTML을 사용하여 인라인 스크립트를 실행하는 기술
innerHTML을 사용하여 웹 페이지에 스크립트를 삽입하는 데에는 한계가 있습니다. 스크립트가 DOM에 나타날 수 있지만 자동으로 실행되지 않는 경우가 많습니다. 이 문제를 해결하고 삽입 시 스크립트 실행을 활성화하려면 특정 방법을 사용할 수 있습니다.
방법: 재귀적으로 스크립트 교체
이 접근 방식에는 각 인라인 스크립트 요소를 실행 가능한 대응. 다음 코드 조각은 구현을 보여줍니다.
function nodeScriptReplace(node) { if (nodeScriptIs(node) === true) { 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'; }
사용 예:
nodeScriptReplace(document.getElementsByTagName("body")[0]);
이 방법은 DOM 트리를 재귀적으로 탐색하여 인라인 스크립트 요소를 식별하고 다음으로 바꿉니다. 스크립트가 예상대로 실행되도록 보장합니다.
위 내용은 innerHTML을 사용한 후 인라인 스크립트 실행을 보장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!