2016-09-01 3 views
4

사용자가 웹 사이트의 body 태그에 javascript 코드를 포함시키는 서비스가 있습니다. 때로는 코드가 삽입 된 페이지가 스크립트가 실행되지 못하게하는 다른 자바 스크립트 파일에서 자바 스크립트 오류를 ​​발생시킵니다.오류로 인해 포함 된 JavaScript가 실행되지 않습니다.

다른 자바 스크립트 범위를 방해하지 않도록 코드를 디자인 할 수있는 방법이 있습니까?

제가 생각할 수있는 유일한 해결책은 js 코드를 iframe에 넣는 것입니다.

+1

네임 스페이스이기 때문에 충돌하지 않습니까? –

+0

네임 스페이스를 사용해야하는 것 같습니다. https://www.kenneth-truyers.net/2013/04/27/javascript-namespaces-and-modules/ –

+0

네임 스페이스입니다. 하지만 null 개체에서 메서드 x를 호출 할 수없는 것을 던지는 이전 스크립트가 있으면 그 이후의 모든 javascript는 무시됩니다. –

답변

2

코드가 항상 실행되도록하는 가장 좋은 방법은 코드가 항상 먼저로드되는지 확인하는 것입니다.

스크립트가 동적으로로드되거나 비동기 또는 지연으로 표시되지 않는 한 스크립트는 페이지에서 발생한 순서대로 실행되거나 평가됩니다. 첫 번째 스크립트가 먼저 실행됩니다.

즉, 기본적으로 script 태그가 다운로드되어 HTML 문서에서 발생하는대로 순차적으로 평가됩니다.

로드해야하는 외부 참조 스크립트 파일은 외부에서 참조 된 파일이로드되고 구문 분석되어 실행될 때까지 이후의 모든 자바 스크립트 실행을 기다리게합니다.

이 모든 것은 스크립트가로드되는 HTML의 맨 위에 있어야한다는 것을 의미합니다. 즉, 스크립트가 먼저 처리되고 다른 스크립트가 사용자의 작업을 방해 할 수 없음을 의미합니다.

참조 : http://docstore.mik.ua/orelly/webprog/jscript/ch12_03.htm

관련 문제