2014-01-17 75 views
1

我试图让我的HTML和JavaScript代码真正有组织,所以我所有的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 - 它很好.. 我做错了什么?

+0

而你的控制台是空白的?你使用的浏览器是什么,这个脚本与你的文件相关的位置在哪里?另外,正确的'type'属性是'text/javascript'。 – Daedalus

+0

控制台没有说什么.. 它是文本\ javascript部分失踪...写它作为答案,所以我可以接受它:)谢谢 –

+0

根据要求写一个全面的答案。 – Daedalus

回答

1

正如我在注释中提到的上方,用JavaScript内容类型打交道时,正确的价值观之一是text/javascript ,如w3c spec中的“注明”所述。

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

+0

当然,我可能是错的,但这就是我设法找到的。 – Daedalus

2

在脚本标记中尝试type="text/javascript"

此外,您的.js文件与.html文件位于同一文件夹中吗?如果你把JavaScript的一个文件夹中,你需要做这样的事情:

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