Firefox 8 for Mac存在问题:window.name未定义

时间:2012-01-08 19:09:56

标签: javascript facebook facebook-javascript-sdk

我一直在尝试使用我的网站配置新的Facebook Javascript API,但我遇到了Firefox的问题(与Chrome和Safari完美配合,但尚未完全测试IE,但已被告知没有问题)。

这个问题正在Facebook的all.js文件的开头指出,消息说

window.name is undefined
if(!window.FB)window.FB={_apiKey:null,...return document.getElementById(a);}}; 
all.js (line 3)

因此,任何后续使用FB访问SDK。导致错误陈述

FB is not defined
[Break On This Error] FB.login(function(response) 

我使用的代码是

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
    FB.init({
    appId      : 'my_app_id', // App ID
    channelURL : 'my_channel_file', // Channel File
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    oauth      : true, // enable OAuth 2.0
    xfbml      : true  // parse XFBML
    });
    startLoad();

};

    // Load the SDK Asynchronously
    (function(d){
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        d.getElementsByTagName('head')[0].appendChild(js);
    }(document));
</script>

有关问题的任何线索?并且之前有人遇到过这个错误吗?

1 个答案:

答案 0 :(得分:3)

解决:令人难以置信,唯一的小错误是我在我的JS文件中使用名为“name”的全局变量。这与Facebook SDK严重禁忌(虽然没有在任何地方提及)。我在一个我不记得的链接上找到了推理,但主要问题是全局名称变量被FB api所需的window.name破坏了。

我建议避免使用名为name的全局变量,无论您是否使用Facebook SDK。以防万一。