아래 스크립트는 Chrome과 Firefox에서 완벽하게 작동하지만 IE에서는 작동하지 않습니다. 이 코드는 사용자가 내 페이지의 팬인지 여부를 확인하는 것입니다. 스크립트는 다른 페이지 (팬)로 리다이렉트하지 않으며, 팬 (fan)이 아닌 likebox도 표시하지 않습니다.Facebook에서 JavaScript가 작동하지 않지만 Firefox와 Chrome에서 작동합니다.
아이디어가 있으십니까? 나는 페이스 북 응용 프로그램과 자바 스크립트에 매우 익숙하다. 내 멍청이 한테 미안해.
<!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를 최신 버전으로 업데이트하고 있습니다. 이미 IE9에서 실행되는 javascript를 열었습니다.
당신이 IE –
에 대한 JavaScript를 업데이트하는 것을 보니 흥미로운 사실을 발견했습니다. 제 스크립트의 문제점을 잘 모릅니다. 따라서 JavaScript를 업데이트하려고합니다. – Nick
무엇이 실패했는지에 대해 자세히 설명해 줄 수 있습니까? 어딘가에서 JS 오류가 발생하고 있습니까? 그렇다면 무엇이 표시됩니까? –