Facebookポップアップウィンドウが開いたら、メールとパスワードを入力した後; ポップアップ ウィンドウは閉じません。ログインが成功した後に読み込まれるはずのページが、ポップアップ ウィンドウ自体に読み込まれます。このポップアップウィンドウを手動で閉じて親ページを更新すると、すべてうまくいきます。
javascript で windows.close および window.opener.location.reload 関数を使用しましたが、機能していないようです
私はコードイグナイターを使用しています:
私のコントローラー
<?php
class Landing extends CI_Controller {
private $user = null;
public function __construct()
{
parent:: __construct();
parse_str($_SERVER['QUERY_STRING'], $_REQUEST);
//print_r($this->session->all_userdata());
$redirect_url = (isset($_GET['redirect_url'])) ? $_GET['redirect_url'] : '';
if($this->session->userdata('loginStatus')) {
if($redirect_url && $redirect_url !=='') {
redirect($_GET['redirect_url']);
} else {
redirect('home');
}
}
$this->load->library('fb_api/facebook', array("appId" => $this->config->item('appId') , "secret" => $this->config->item('secret')));
$this->user = $this->facebook->getUser();
}
public function index(){
if (isset($_REQUEST['state']) && isset($_REQUEST['code'])) {
echo "<script>window.close();window.opener.location.reload();</script>";
} else {
// load page
}
if ($this->user) {
try {
見る:
<script type="text/javascript">
var baseUrlJs = '<?php echo base_url()?>';
var sessMemLayer = "<?=$this->session->userdata('loginStatus')?>";
<?php if ($loginFbUrl) { ?>
var newwindow;
var intId;
function loginFB(){
var screenX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft,
screenY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop,
outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth,
outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22),
width = 500,
height = 270,
left = parseInt(screenX + ((outerWidth - width) / 2), 10),
top = parseInt(screenY + ((outerHeight - height) / 2.5), 10),
features = (
'width=' + width +
',height=' + height +
',left=' + left +
',top=' + top
);
newwindow=window.open('<?=$loginFbUrl?>','Login_by_facebook',features);
if (window.focus) {newwindow.focus()}
return false;
}
<?php } ?>
</script>
助けてくださいありがとう