Facebook请求对话框未显示在IE上

时间:2013-04-30 06:24:30

标签: php javascript facebook facebook-javascript-sdk

在我的Facebook应用程序中,我使用facebook javascript sdk(由facebook提供的代码)来显示用于向用户朋友发送应用请求的对话框(iframe)。 iframe在firefox和chrome中正常工作但在ie中不起作用。这是使用的代码

FB.getLoginStatus(function(response) {
                if (response.status === 'connected')
                {   var accessToken = response.authResponse.accessToken;
                    FB.ui({method: 'apprequests',
                            message: 'Checking App Request',
                            to: '<?php $i=0; foreach($friends as $id){if($i==50) break; echo($id.","); $i++;}?>',
                            title: 'Request',
                            display: 'iframe',
                            access_token: accessToken
                            }, requestCallback);
                }
                });

1 个答案:

答案 0 :(得分:1)

这是人们通过为IE设置displaypopup值来处理的错误。 Gist with example

// Detect browser and set the compatible Dialog display type
div = document.createElement('div');
div.innerHTML = '<!--[if IE]><i></i><![endif]-->';
ie = div.getElementsByTagName('i').length === 1;
if (ie) {
  display = 'popup';
} else {
  display = 'iframe';
}

// Make the call
FB.ui({
  method: "apprequests",
  message: message,
  display: display,
  to: facebook_friend_id
}, function(response) {
  facebook_request_id = response.request_ids[0];
});