2011-08-25 14 views
0

我完成了我的应用程序,但是当我在其他网络浏览器上测试它时,出现了问题为什么这段代码不能在Firefox上使用? (它完全适用于Opera)

我将添加我的代码。我不能看到error.as我说,它适用于京剧,但不能在Firefox:/

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2011/fbml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    </head> 
    <body> 
<div id="fb-root"></div> 
    <script type="text/javascript"> 
      window.fbAsyncInit = function() { 
       FB.init({appId: '199193070140222', status: true, cookie: true, xfbml: true}); 

      }; 
      (function() { 
       var e = document.createElement('script'); 
       e.type = 'text/javascript'; 
       e.src = document.location.protocol + 
        '//connect.facebook.net/tr_TR/all.js'; 
       e.async = true; 
       document.getElementById('fb-root').appendChild(e); 

      } 
      ()); 

     function lget(idd){ 
       FB.api('/'+idd, function(response) { 
       document.getElementById(idd+"_a").innerHTML ="<a href='" + response.link + "' id='"+idd+"_und' style='color:#12566C;font-size:14px;' onmouseover=document.getElementById('"+idd+"').style.textDecoration=underline; onmouseout=document.getElementById('"+idd+"').style.textDecoration=none; target='_blank'><b>" + response.name + "</b></a>"; 
       }); 
      } 




     </script>  


<div style="padding-left:6px;"><center> 

<div id="525864081_a" ></div> 

<script type="text/javascript"> 
lget(525864081); 
</script> 



<div id="534018674_a" ></div> 

<script type="text/javascript"> 
lget(534018674); 
</script> 


</div> 
</body> 
</html> 
+0

可能的重复[有没有办法来检测是否Facebook的Javascript SDK加载成功?)(http://facebook.stackoverflow.com/questions/5334977/is-there-a-way-to-detect-if-the-facebook-javascript-sdk-loaded-successfully) – ifaour

回答

0

您正在加载Facebook的JS SDK在异步模式下,因此FB对象还没有准备好,当你把它里面LGET异步加载发生在您调用lget之后,甚至在Firefox中的onload事件之后。

尽量不要异步加载代码,并注意它是工作的罚款

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2011/fbml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    </head> 
    <body> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script type="text/javascript"> 
       FB.init({appId: '199193070140222', status: true, cookie: true, xfbml: true}); 

    function lget(idd){ 
       FB.api('/'+idd, function(response) { 
       document.getElementById(idd+"_a").innerHTML ="<a href='" + response.link + "' id='"+idd+"_und' style='color:#12566C;font-size:14px;' onmouseover=document.getElementById('"+idd+"').style.textDecoration=underline; onmouseout=document.getElementById('"+idd+"').style.textDecoration=none; target='_blank'><b>" + response.name + "</b></a>"; 
       }); 
      } 

    </script> 

<div style="padding-left:6px;"><center> 

<div id="525864081_a" ></div> 

<script type="text/javascript"> 
lget(525864081); 
</script> 



<div id="534018674_a" ></div> 

<script type="text/javascript"> 
lget(534018674); 
</script> 

</div> 
</body> 
</html> 

,如果你想看到的执行顺序尝试这样的事情

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2011/fbml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    </head> 
    <body onload="console.log('onload event'); false;"> 
<div id="fb-root"></div> 
    <script type="text/javascript"> 
      window.fbAsyncInit = function() { 
     FB.init({appId: '199193070140222', status: true, cookie: true, xfbml: true}); 
     console.log('FB object ready'); 
      }; 
      (function() { 
       var e = document.createElement('script'); 
       e.type = 'text/javascript'; 
       e.src = document.location.protocol + 
        '//connect.facebook.net/tr_TR/all.js'; 
       e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
      console.log('This executed first'); 
      } 
      ()); 

     function lget(idd){ 
      console.log('lget - ' + idd); 
      }; 
     </script> 


<div style="padding-left:6px;"><center> 

<div id="525864081_a" ></div> 

<script type="text/javascript"> 
lget(525864081); 
</script> 



<div id="534018674_a" ></div> 

<script type="text/javascript"> 
lget(534018674); 
</script> 


</div> 
</body> 
</html> 

这是输出,你会得到在火狐

This executed first 
lget - 525864081 
lget - 534018674 
onload event 
FB object ready 
+0

谢谢谢谢谢谢! !我一直试图修复它3天:) – Can

相关问题