0

Мой скрипт ниже отлично работает на Chrome и Firefox, но как-то не работает на IE. Код должен проверить, является ли пользователь поклонником моей страницы или нет. Сценарий не перенаправляется на другую страницу (является фанатом), а также не показывает подобный бокс (не вентилятор).Facebook JavaScript не работает над IE, но работает над Firefox и Chrome

Любая идея? Я очень новичок в приложении facebook и javascript. Извините за мой нуб.

<!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> 

FYI: Я использую IE9 и уже обновляю javascript до последней версии. Я уже открыл javascript для работы в IE9.

+3

Мне очень интересно увидеть обновленный JavaScript для IE –

+0

Я не знаю, что случилось с моим скриптом, поэтому я просто попробую обновить javascript. – Nick

+0

Можете ли вы рассказать о том, что не удается? Вы где-то получаете ошибку JS, и если да, то что она говорит? –

ответ

1

Что это?

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

Если это FB SDK, попробуйте удалить эту строку.

+0

Это работа! Могу я спросить, почему? Я включил эту строку, предполагающую, что сценарий загружается быстрее. – Nick

+0

Ну, во-первых, он не будет загружаться быстрее. Включение всех ваших скриптов в верхнюю часть страницы часто является плохим. Они будут блокировать рендеринг, пока он не будет загружен, поэтому лучше иметь их перед тегом закрытия тела. Во-вторых, это было неудачно, потому что внизу вы перезагружали его асинхронно. При загрузке дважды скрипт FB, как известно, ломается в некотором роде, в этом случае не работает для IE. – Bruno

+0

Благодарим вас за ответ. Вы мне очень помогаете – Nick

Смежные вопросы