2010-02-15 5 views
1

웹 사이트에서 나는 페이지가로드 된 후 10 초 후에 추적 스크립트를로드해야합니다. 나는 a snippet to do so을 찾았지만, 나는 걸림돌을 때렸다. 10 초를 기다리면 페이지가 흰색으로 바뀝니다. URL이 변경되지는 않지만 페이지가 더 이상 보이지 않고 throbber가 회전하기 시작합니다.자바 스크립트 지연 로딩 빈 페이지

function $import(src){ 
    var scriptElem = document.createElement('script'); 
    scriptElem.setAttribute('src',src); 
    scriptElem.setAttribute('type','text/javascript'); 
    document.getElementsByTagName('head')[0].appendChild(scriptElem); 
} 

// import with a random query parameter to avoid caching 
function $importNoCache(src){ 
    var ms = new Date().getTime().toString(); 
    var seed = "?" + ms; 
    $import(src + seed); 
} 

// 
// Tracker options go here... 
// 

setTimeout(function(){ 
    $importNoCache("http://tracking.code/url"); 
}, 10 * 1000); 

이 작업을 수행 할 수있는 더 나은 방법이 있나요 : 여기

내가 스크립트를로드하는 데 사용하고 무엇입니까?

편집 : 방화 광에서 코드를 밟았으며 스크립트가 정상적으로 작동합니다. Firebug의 디버거가 꺼지면 위에서 설명한대로 페이지가 비어있게됩니다.

답변

4

스크립트가 document.write을 호출하면 이러한 현상이 발생합니다.

로드중인 스크립트를 표시 할 수 있습니까?

+0

이 스크립트를로드 중입니다 : http://www.googleadservices.com/pagead/conversion.js –

+0

스크립트는'document.write'를 호출합니다. – SLaks

+0

지금은 페이지의 나머지 부분과 함께로드 할 것입니다. 나는'document.write'에 대해 이것을 몰랐다. 어쨌든 고마워. –

1

코드가 정상적으로 표시되어 문제가 추적 코드에있는 것 같습니다. document.write() 호출이 포함되어 있으면 정상적으로 포함될 때 제대로 작동하지만 페이지로드가 끝나면 포함될 때 페이지를 지울 수 있습니다.

편집 : 그래, 추적 스크립트는 d = document를 수행 한 다음 나중에 d.write()를 호출합니다 ... 페이지로드가 완료된 후이 스크립트를 포함 할 수 없습니다.

관련 문제