Internet explorer 8 Google Chrome框架和Facebook Javascript SDK-无法登录

Internet explorer 8 Google Chrome框架和Facebook Javascript SDK-无法登录,internet-explorer-8,facebook-javascript-sdk,google-chrome-frame,Internet Explorer 8,Facebook Javascript Sdk,Google Chrome Frame,在下面的示例中,我有一个html页面,其中包含登录facebook所需的javascript代码 在页面上,我有一个Google Chrome框架元标记,它使页面运行在Google Chrome框架中。如果使用任何浏览器打开此页,finish()回调将正常运行。 如果你用谷歌Chrome框架打开它,它永远不会开火 因此,这意味着每个试图登录以收集用户数据的Facebook应用程序都无法登录。 如果使用谷歌框架打开页面,就会发生这种情况 但即使我删除了meta标签,这样页面就可以用IE8打开,页面

在下面的示例中,我有一个html页面,其中包含登录facebook所需的javascript代码

在页面上,我有一个Google Chrome框架元标记,它使页面运行在Google Chrome框架中。如果使用任何浏览器打开此页,finish()回调将正常运行。 如果你用谷歌Chrome框架打开它,它永远不会开火

因此,这意味着每个试图登录以收集用户数据的Facebook应用程序都无法登录。 如果使用谷歌框架打开页面,就会发生这种情况

但即使我删除了meta标签,这样页面就可以用IE8打开,页面也会用google chrome框架再次打开,因为Facebook默认打开google chrome框架

因此,因为这是一个运行在Facebook.com内部的Facebook应用程序,它被迫使用Google Chrome框架打开

严重的错误! 我见过其他人报告,有人在这里测试了facebook应用程序:

在下面的示例中,appID和channelUrl是虚拟的

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 11 February 2007), see www.w3.org" />
  <meta charset="utf-8" />
  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  <meta http-equiv="Pragma" content="no-cache" />
  <meta http-equiv="Expires" content="0" />
  <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8" />

  <title>Facebook Login</title>
  <script type="text/javascript">
//<![CDATA[


  // 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));

  var appID = '0000000000000';
  var channelUrl = '//myhost/channel.html';

  // Init the SDK upon load
  window.fbAsyncInit = function() {

  FB.init({
  appId : appID, // App ID
  channelUrl : channelUrl,
  status : true, // check login status
  cookie : true, // enable cookies to allow the server to access the session
  xfbml : true // parse XFBML
  });

  FB.Event.subscribe('auth.statusChange', function(response)
  {
  if(!response.authResponse)
  FB.login(finish, {scope: 'publish_actions,publish_stream'});
  else
  finish(response);
  });

  FB.getLoginStatus(finish);

  }

  function finish(response)
  {
  alert("Hello "+response.name);
  }

  //]]>
  </script>
</head>

<body>
  <h1>Facebook login</h1>

  <p>Do NOT close this window.</p>

  <p>please wait...</p>
</body>
</html>

Facebook登录
//
Facebook登录
不要关闭此窗口

请稍候