javascript
  • jquery
  • html
  • 2012-06-19 2 views 0 likes 
    0
    if (typeof $ == "undefined"){ 
    
    console.log("$ is undefined. Adding javascript element to the document"); 
    jQs = document.createElement("script"); 
    jQs.type = 'text/javascript'; 
    jQs.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'; 
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(jQs, s); 
    
    // Run script once jQuery is loaded 
        console.log(" startScript() Start"); 
        jQs.onload = startScript; 
    
    } 
    
    위의 스크립트는 $가 정의되지 않은 경우 jquery를 가리키는 스크립트 태그를 추가합니다. 문서가 시작되기 전에 태그를 삽입하고 startScript 함수를 실행하려고합니다. 하지만 내가 생각하는 것은 body.onload가 startScript를 충분히 빠르게 트리거하지 않는다는 것입니다. jquery 스크립트 태그/문서가 준비되는 즉시 startScript를 트리거하는 이벤트가 있습니까?

    자바 스크립트 onload 이벤트 및 문서 준비가되기 전에 다른 이벤트

    나는 .. 대답은 JQuery와 태그가 준비하고 문서가 나는 효과를 달성하는 방법을 잘 모릅니다 together..but 준비가 될 때마다 startscript을 실행에있다

    주를 생각 ($의 코드를 넣어 문서). jquery 파일이 스크립트에 포함되어 있지 않은 경우 $가 정의되지 않았기 때문에 .ready()는 관련없는 솔루션입니다.

    참고 jquery 태그 onload 이벤트에서 onload 함수를 실행하고 싶지 않습니다. 기능이 여러 번 트리거되고 있음을 나타낼 수도 있습니다.

    답변

    4
    function init() { 
        if (typeof $ == "undefined"){ 
    
        console.log("$ is undefined. Adding javascript element to the document"); 
        jQs = document.createElement("script"); 
        jQs.type = 'text/javascript'; 
        jQs.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'; 
        var s = document.getElementsByTagName('script')[0]; 
        s.parentNode.insertBefore(jQs, s); 
    
        // Run script once jQuery is loaded 
         console.log(" startScript() Start"); 
         jQs.onload = startScript; 
    
        } 
    } 
    window.onload = init; 
    
    +0

    당신이 고쳤다 고 생각합니다 ... LOL .. 3 시간 동안 붙어 있어요 .. 드디어 해결했습니다 –

    +3

    @ FrançoisWahl'typeof'는 항상 문자열을 반환합니다. 문자열 유형을 강제로 적용해도 아무런 효과가 없습니다. 'typeof null'은'=='또는'==='를 사용하든''object "'입니다. '$'을'undefined'에 대해 테스트하는 목적은'jQuery'가 이미로드되었는지 아닌지를 보는 것입니다. 마지막 노트가 틀리면,'null == undefined'가 true이고'null === undefined'가 false입니다. –

    +0

    @RobW : +1 당신 말이 맞습니다. 내 실수. 난 그냥 jsFiddled 그리고 나는 그것을 주위에 잘못된 길을했다. 나는 내 의견을 다시 언급 할 것이다 :) – Nope

    관련 문제