在我的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);
}
});
答案 0 :(得分:1)
这是人们通过为IE设置display
到popup
值来处理的错误。 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];
});