2017-03-23 16 views
3

그래서 난이제대로

const script = document.createElement('script'); 
    script.setAttribute('src', '/script.js'); 
    script.setAttribute('type', 'text/javascript'); 
    script.setAttribute('defer', true);//this is the code in question! 
    document.getElementsByTagName('body')[0].appendChild(script); 

같은 연기 스크립트 태그를 추가하려고 순수 자바 스크립트와 스크립트 태그에 속성을 연기 추가하지만 결과 스크립트 태그는 defer=true 대신 단지 defer 같은 defer 속성을 생성합니다 발견 .

동일합니까? defer 대신 defer=true을 사용하면 어떤 의미가 있습니까?

감사합니다. 이상 또는 - (워드 프로세서는 기술적으로 연기 "가"true "또는 거짓해서는 안됩니다과 같은 속성의 값을 명시하지만) 그들은 일반적으로 동일하게 동작

script.setAttribute("defer", "defer"); 

:

답변

3

나는 그것을 바꿀 것 모든 브라우저에서 나는 부울 속성을 사용했습니다. 속성 defer은 일반적으로 스크립트 태그에 존재 경우 효과 을 구현한다.이 값은 무시됩니다. 말했다되고

것을 사양은 부울을 지정합니다 속성 값 존재하지 않거나 그렇지 않으면 선행/후행 공백없이 대문자로 설정되어야합니다 (대소 문자는 중요하지 않음). 따라서 속성을 동적으로 설정할 때 값을 속성의 이름으로 두는 것이 좋습니다.

부울 속성이 문서 (HTML5)를 참조하십시오 https://www.w3.org/TR/html5/infrastructure.html#boolean-attribute

견적이 문서에서 : 속성의

숫자가 부울 속성입니다. 요소에 대한 부울 속성의 존재는 true 값을 나타내고 속성이없는 부재는 false 값을 나타냅니다.

속성이있는 경우 해당 값은 빈 문자열 이거나 속성의 정규 이름에 대/소문자를 구분하지 않는 ASCII 일치 값이어야합니다 (앞뒤 공백 없음).

참고 : 값이 "true"와 "거짓은"부울 속성에 사용할 수 없습니다. 거짓 값을 표시하려면 속성을 모두 으로 생략해야합니다.

그리고 연기 속성이 문서 (HTML5) : https://www.w3.org/TR/html5/scripting-1.html#attr-script-defer

그것은 상태 :

비동기 및 지연 속성이 방법을 나타내는 부울 속성이 있습니다> 스크립트가 있어야한다 실행.