페이지에 동적으로 추가되는 자바 스크립트 파일이 있습니다. 나는에 appendChild를 사용하는 경우 this answer에 설명 된대로 스크립트가 다운로드됩니다, 그러나appendChild를 통해 자바 스크립트를 추가 할 수 없습니다.
<html>
<head></head>
<body>
<script type="text/javascript">
var src = 'myDynamicScript.js';
document.write('<scr' + 'ipt type="text/javascript" src="' + src + '"></scr' + 'ipt>');
</script>
</body>
</html>
, 그러나 결코 실행하지 : 내가 document.write를 사용하는 경우, 그것을 잘 작동
<html>
<head></head>
<body>
<script type="text/javascript">
var src = 'myDynamicScript.js';
var script = document.createElement("script");
script.type = "text/javascript";
script.src = src;
document.body.appendChild(script);
</script>
</body>
</html>
내가있어 간단한 예제 설정 here (write) 및 here (append). 나는 그것이 달릴 것으로 예상해야합니까, 아니면 알려진 행동입니까? 만약 그렇다면, 왜 그렇지 않습니까?
왜 "악"이 아닌) document.write를 사용할 수 없습니까? 나는이 특별한 상황에서 왜 금지되어있는 걸까요? – sprugman
그것은 금지되어 있지 않지만 원본 문서 (즉, 기본 페이지)가 이미 닫힌 후에 발생합니다 **. 후속 "쓰기()"작업을 수행하면 원본 페이지가 버려집니다. – Pointy
사실, @Pointy는 반대가되는 것처럼 보입니다. 제가 말할 수있는 한, appendChild-ed 스크립트의 document.write는 절대로 발생하지 않거나 메인 페이지에서 어떻게 든 덮어 씁니다. setTimeout 안에 넣으면 주 페이지를 덮어 쓸 수 있습니다. – sprugman