2011-05-12 4 views
1

일부 추적 문제를보고 스크립트 시작과 관련된 질문이 있습니다.Javascript는 document.writeln과 함께 (또는없이) 실행됩니다.

<script type="text/javascript" src="http://www.example.com/universalPixel.html"></script> 

<script language="JavaScript"> document.writeln('<scri' + 'pt type="text/javascript" src="http://www.example.com/universalPixel.html"></scri' + 'pt>');</script> 

나는이 두 가지 변화를 보았다 불행하게도 포함에 상당한 차이 의존이있는 경우 식별 할 수 없었던 : 사이에 차이가있는 경우 누군가가 말해 줄 수 document.writeln 메소드의 아니면 내가 모르는 또 다른 구분.

도움 주셔서 감사합니다.

알렉스

+6

두 번째 것은 단순한 악마입니다! ;)하지만 심각하게'document.write'를 사용하지 마십시오. 그것은 매우 90 년대이고 끔찍하게 유지할 수 없습니다. –

답변

3

document.writeln 아마도 브라우저가 </script> 심지어 자바 스크립트 문자열의 내부 스크립트 태그의 끝으로 어디에서나 나타나는 처리하기 때문에 이상한 문자열 연결 방법을 사용하여 동적 스크립트를 포함하는 데 사용됩니다.

<script type="text/javascript"> 
    // code 

    document.writeln('<script type="text/javascript" src="..."></script>"); 
    // ^^ the </script> above ends the previous <script> tag prematurely. 

    // more code 
</script> 

을하지만 더 나은 방법이 있습니다 : 그래서 다음은 그 이유로 제대로 작동하지 않을 것입니다 동적으로 서버 측 코드를 사용하여 포함 생성 <script src="..">

  • 를 사용하여, 그냥 일반적으로 그들을 포함

    1. (즉, , PHP)
    2. 동적 라이브러리로드를 제공하는 JS 라이브러리를 사용하십시오.
  • 1

    XHTML에서는 document.writeLn이 권장되지 않으므로 옵션 1을 사용해야합니다. 적절한 doctype이 사용되면 많은 엄격한 브라우저에서 두 번째 항목도 무시합니다.

    관련 문제