2

我使用 javascript sdk 为我的网站开发了一个 facebook 连接应用程序。它适用于除 IE 以外的所有浏览器。

在 IE 中,有时它不会调用用户单击登录按钮的测试 API 函数。登录窗口弹出,当用户输入用户名和密码时,它应该调用 testAPI 函数。但有时函数调用不起作用。但有时如果我刷新浏览器并重试,它会起作用。

这里有没有人面临这种​​类型的问题。下面是我的javascript代码:

window.fbAsyncInit = function() {
    FB.init({
      appId      : '', // App ID
      channelUrl : '//localhost/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });
    FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      // connected
      testAPI();
    } else if (response.status === 'not_authorized') {
      // not_authorized
      login();
    } else {
      // not_logged_in
      login();
    }
  });

    // Additional init code here

  };



  function login() { //alert("test");
    FB.login(function(response) {
        if (response.authResponse) {
            // connected
          testAPI();
        } else {
            // cancelled
        }
    }, { scope: 'email' });
    }

  function testAPI() {
    //document.write ("tet");
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {

        //document.write("sdfs");
        //document.write(response.name);
        var test = response.first_name; //alert(test);
        console.log('Good to see you, ' + response.first_name + '.');
        console.log('Good to see you, ' + response.last_name + '.');
        console.log('Good to see you, ' + response.id + '.');
        console.log('Good to see you, ' + response.email + '.');
       // console.log(response);
    });
  }

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

1 回答 1

4

那么问题是IE不支持控制台对象,愚蠢的是如果你打开Internet Explorer开发工具,控制台对象是支持的。

因此,只需删除所有 console.log 行,它们在您打开开发人员工具时工作,但如果开发人员工具关闭,它们将不起作用。这太愚蠢了,以至于调试起来更加困难。

而是尝试使用警报。

你可以在这里阅读更好的解释:

IE9是否支持console.log,它是一个真正的功能吗?

于 2013-04-14T20:01:20.080 回答