Facebook JavaScript不适用于IE,但适用于Firefox和Chrome
我下面的脚本在Chrome和Firefox上运行得很好,但在IE上却不起作用。代码是检查用户是否是我页面的粉丝。脚本既不会重定向到另一个页面,也不会显示likebox而不是fan 有什么想法吗?我对facebook应用程序和javascript非常陌生。对不起,我的noobFacebook JavaScript不适用于IE,但适用于Firefox和Chrome,javascript,facebook,internet-explorer,facebook-graph-api,Javascript,Facebook,Internet Explorer,Facebook Graph Api,我下面的脚本在Chrome和Firefox上运行得很好,但在IE上却不起作用。代码是检查用户是否是我页面的粉丝。脚本既不会重定向到另一个页面,也不会显示likebox而不是fan 有什么想法吗?我对facebook应用程序和javascript非常陌生。对不起,我的noob <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Redirecting...please wait</title>
<script type="text/javascript" src="../../src/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../../src/js/all.js"></script>
<style type="text/css">
div#container_notlike, div#container_like {
display: none;
}
</style>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : 'APP_ID', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
//if like botton click, reflesh page
FB.Event.subscribe('edge.create',
function(href, widget) {
//alert("Like button clicked");
window.location.reload();
});
FB.getLoginStatus(function(response) {
var page_id = "PAGE_ID";
if (response && response.authResponse) {
var user_id = response.authResponse.userID;
//var accessToken = response.authResponse.accessToken;
var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
FB.Data.query(fql_query).wait(function(rows) {
if (rows.length == 1 && rows[0].uid == user_id) {
console.log("LIKE");
//alert ("Like");
location.href="https://www.example.com/apps";
} else {
console.log("NO LIKEY");
$('#container_notlike').show();
}
});
} else {
FB.login(function(response) {
if (response && response.authResponse) {
var user_id = response.authResponse.userID;
var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
FB.Data.query(fql_query).wait(function(rows) {
if (rows.length == 1 && rows[0].uid == user_id) {
console.log("LIKE");
//alert ("Like");
location.href="https://www.example.com/apps";
} else {
console.log("NO LIKEY");
$('#container_notlike').show();
}
});
} else {
console.log("NO LIKEY");
$('#container_notlike').show();
}
}, {scope: 'user_likes'});
}
});
};
// 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#xfbml=1&appId=APP_ID";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<center>
<div id="container_notlike">
<fb:like-box href="http://www.facebook.com/example" width="292" height="62" show_faces="false" stream="false" header="false" >
</fb:like-box>
</div>
</div>
</center>
<div id="container_like">
YOU LIKE ME :)
</div>
</body>
</html>
仅供参考:我正在使用IE9,并且已经将javascript更新为最新版本。我已经打开javascript在IE9上运行。这是什么
<script type="text/javascript" src="../../src/js/all.js"></script>
如果是FB SDK,请尝试删除该行。我发现看到您更新IEJavaScript很有趣。我不知道我的脚本出了什么问题,所以我只是尝试更新JavaScript。您能提供一些失败的细节吗?您是否在某个地方遇到JS错误,如果是,它会说什么?您无法更新JavaScript;尝试注释你的console.log;线IE有一个习惯,就是在开发人员工具未打开时,对console.log进行攻击。这就是工作!我可以问一下为什么吗?我加入了这一行,目的是让脚本加载得更快。首先,它不会加载得更快。把你所有的纸条都放在页首通常是不好的。它们将阻止渲染,直到它被下载,所以最好在body closing标记之前使用它们。其次,它失败了,因为在底部,您正在异步重新加载它。当加载两次时,FB脚本在某些方面会中断,在本例中,它不适用于IE。谢谢您的回答。你帮了我很多