2011-01-24 1 views
3

저는 blackberry9300 (5.0.0.832)입니다. 그리고 프로그래밍 방식으로 javascript 요소를 추가하려고합니다. Blackberry 브라우저에서 스크립트 요소를 동적으로 추가하는 방법은 무엇입니까?

var script=document.createElement('script'); 
script.src='file.js'; 
script.type='text/javascript'; 
script.onload=function(){alert('loaded');}; //Nothing happens 
script.addEventListener('load', function(){alert('loaded');}, false); //Nothing happens 
script.addEventListener('readystatechange', function(){alert('state changed');}, false); //Nothing happens 
script.onreadystatechange=function(){alert('state changed')}; //Nothing happens 
document.getElementsByTagName('head').item(0).appendChild(script);
이 문제를 해결할 방법이 있습니까?

답변

3

이전 os (< 6.0)의 blackberry 브라우저는 onload 이벤트를 발생시키지 않거나 스크립트의 readyState를 변경하지 않습니다. 따라서 js 파일이 성공적으로로드되었는지 여부를 폴링해야합니다. 아무도 관심이 없다면 그 기능이 있습니다.

function loadScript(path,callback,chkvar){ 
    var a=document.createElement('script'); 
    a.src=path; 
    a.type='text/javascript'; 
    a.onreadystatechange=function(){ 
    if(this.readyState=='complete'||this.readyState=='loaded') 
     callback(); 
    }; 
    a.onload=callback; 
    if(a.hasOwnProperty('onload')==false) 
    var e=setInterval(function(){ 
     if(eval(chkvar)){ //chkvar will only be available after js file is loaded. 
     clearInterval(e); 
     callback(); 
     } 
    },50); 
    } 
    document.getElementsByTagName('head').item(0).appendChild(a); 
}

관련 문제