2016-09-08 7 views
0

가능한 한 빨리 페이지에 액세스해야하는 스크립트가 있습니다. 많은 사이트에서 사용되며 일관되게 구현되지 않았습니다. 일부 페이지는 DOM이 준비된 후에로드 될 수 있으므로 항상 document.write를 안전하게 사용할 수있는 것은 아닙니다. 확인 (document.readyState === 'loading')하고 true이면 document.write else appendChild를 사용하는 것이 안전합니까? document.write check readyState

+0

'DOMContentLoaded' 이벤트 ([MDN] (https://developer.mozilla.org/en/docs/Web/Events/DOMContentLoaded))를 찾는 것이 좋습니다. 이것은 당신이 찾고있는 것일 수 있습니다. 이 이벤트가 발생하면 AppendChild를 사용하십시오. 그렇지 않으면 코드가 제대로 작동합니다. –

답변

0

<script> 
 
var js = document.createElement('script'); 
 
js.src = 'http://domain.com/script.js'; 
 

 
if (document.readyState === "loading") { 
 
    document.write(js.outerHTML); 
 
} else { 
 
    document.body.appendChild(js); 
 
} 
 
</script>

나는 코드가 완전히 옳다고 생각합니다. MDN Document.readyState 에 대해 documen.readyState 설명서를 확인했으며 제대로 작동해야한다고 생각합니다.

+0

DOM을 덮어 쓰겠다는 대화 형 검사를 제거했습니다. 선적을 확인하는 데 문제가 없었지만 방금 일부 확신을 드리고 싶습니다. – fmx67