JavaScript脚本未加载

时间:2014-01-17 08:31:18

标签: javascript html facebook-javascript-sdk

我正在努力使我的HTML和JavaScript代码真正有条理,所以我所有的JavaScript代码都在不同的文件中。

尝试将代码插入HTML页面时,它不起作用:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="https://www.facebook.com/2008/fbml">
<body>

<div id="fb-root"></div>
<script src="facebook.js" type="javascript" ></script>
</body>
</html>

这是facebook.js:

window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
        appId      : 'APP_ID',                     // App ID from the app dashboard
        status     : true,                                 // Check Facebook Login status
        xfbml      : true                                  // Look for social plugins on the page
    });

    //subscribe event for facebook login
    FB.Event.subscribe('auth.statusChange', function(response) {
        alert(response.status);
    });

};

// Load the SDK asynchronously
(function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s);
    js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

当我在我的html中使用完全相同的脚本时 - 它的效果很好.. 我做错了什么?

2 个答案:

答案 0 :(得分:2)

在脚本代码中尝试type="text/javascript"

此外,您的.js文件与.html文件位于同一文件夹中吗?如果您将JavaScript放在一个文件夹中,则需要执行以下操作:

<script src="FolderName/facebook.js" type="text/javascript"></script>

答案 1 :(得分:1)

正如我在上面的评论中所指出的,处理javascript内容类型时的正确值之一是text/javascriptw3c spec中的“注明”。

我上面说的是正确值的'一个';这是由于指定了here的MIME类型列表,并且访问了here(作为注释,MIME类型列表当前似乎已关闭,因此上面的页面是Web存档); MIME类型列表指定'text / javascript'已过时,通过单击相关的RFC(4329),现在正确的MIME类型显示为application/javascript