2016-07-10 4 views
1

지연 코드가 있습니다. W3 유효성 검사기는 src 요소를 잃어 버렸기 때문에 유효하지 않지만 실제로는 코드에 있습니다.코드 지연이 유효하지 않습니다.

<script defer type="text/javascript">if($(window).width()>1024){document.write("<"+"script src='js/jquery.preloader.js'></"+"script>");}</script> 

내가 무엇을 할 수 이 코드인가?

요하나

답변

-1

DOCTYPE을 HTML5로 설정하십시오. 가능하지 않은 경우 defer 대신 defer=true을 작성해야합니다.

+0

Defer = true는 잘못된 값 오류를 제공합니다. 그리고 이미 html5에 대한 HTML doctype이 있습니다. –

1

두 개의 <script> 태그가 있습니다. HTML 소스 document.write을 사용하여 생성됩니다

  • 하나에

    • 하나.

    하는 HTML 하나는 다음과 같습니다

    <script defer type="text/javascript">…</script> 
    

    그것은 더 src 속성이 없습니다. 그래서 당신은 오류가 발생합니다. 거기에 defer 속성을 사용할 수 없습니다. 자바 스크립트에 의해 생성 된

    하나는 다음과 같습니다

    if ($(window).width()>1024){ 
        document.write("<"+"script src='js/jquery.preloader.js'></"+"script>"); 
    } 
    

    는 그것은 src 속성을 가지고 있으며, defer 속성이 없습니다. 여기에 defer 속성을 추가 할 수 있습니다.

    JavaScript이기 때문에 유효성 검사기에서 HTML로 취급하지 않습니다.

  • 1

    여기에 W3C HTML 검사기 (유효성 검사기)의 관리자입니다.

    해결 방법은 스크립트 내용을 별도의 파일에 저장하고 src 특성을 사용하여이를 참조하는 것입니다.

    속성이없는 경우 scriptdefer 속성을 가질 수 없다는 명시 적 HTML 사양이 있기 때문에 검사 ​​프로그램에서 해당 태그 스 니펫에 대한 오류를보고합니다.

    스펙에는 더 이상 명시 적으로 제한 사항이 명시되어 있지 않지만, 나는 단지 unintentional regression caused by a later spec change 일 뿐이라고 생각합니다. (귀하의 질문에 감사드립니다.) 감사합니다.

    그래서 스펙 수정에 대한 풀 요청을 조사하고 나중에이 응답을 업데이트합니다.

    관련 문제