2009-05-14 6 views
0

모든 브라우저에서 완벽하게 작동하는 예쁜 북마크릿 코드가 있습니다. 그러나이 코드를 HTML 요소 onClick 핸들러에 넣으면 IE (6, 7 또는 8)에서 작동하지 않습니다.onclick 처리기에 넣을 때이 북마클릿 JS 코드가 작동하지 않는 이유는 무엇입니까?

javascript: (
    function(){ 
     function l(i,u){ 
      var d=document; 
      var s; 
      try{ 
       s=d.standardCreateElement('script'); 
      }catch(e){} 
      if(typeof(s)!='object') 
       s=d.createElement('script'); 
      try{ 
       s.type='text/javascript'; 
       s.src='http://{Domain}/bk/' + u; 
       s.id='s_' + i; 
       d.getElementsByTagName('head')[0].appendChild(s); 
      }catch(e){ 
      } 
     } 
     AppD = '{Domain}';   
     l('b', 'bk.js'); 
    } 
    )(); 

북마크로 아래로 압축, 다음과 같습니다 :

코드입니다

javascript:function(){function l(i,u){var d=document;var s;try{s=d.standardCreateElement('script');}catch(e){} if(typeof(s)!='object') s=d.createElement('script'); try{s.type='text/javascript';s.src='http://{Domain}/bk/' + u;s.id='s_' + i;d.getElementsByTagName('head')[0].appendChild(s);}catch(e){}}AppD = '{Domain}';l('b', 'bk.js');})(); 

그리고 완벽하게 작동합니다. 내가 자바 스크립트 밖으로 찍은 : 접두사, 및 요소의 OnClick에 넣어 :

<img onclick="function(){function l(i,u){var d=document;var s;try{s=d.standardCreateElement('script');}catch(e){} if(typeof(s)!='object') s=d.createElement('script'); try{s.type='text/javascript';s.src='http://{Domain}/bk/' + u;s.id='s_' + i;d.getElementsByTagName('head')[0].appendChild(s);}catch(e){}}AppD = '{Domain}';l('b', 'bk.js');})();" /> 

그리고 그 IE보다 제외하고, 너무 잘 작동 bk.js 내부 코드 (주입됩니다 스크립트) 변수 AppD가 정의되지 않았다고 불평합니다 ...

어떤 생각입니까?
onClick 처리기에 넣을 수있는 코드에는 제한이 있습니까?

감사합니다. Daniel

답변