2012-02-10 3 views
2

Это действительно раздражает. Я использую JS SDK для подключения к Facebook. А вчера я пробовал все, и все работало нормально. Но сегодня утром, когда я нажал кнопку входа в систему, после входа в Facebook это всплывающее окно появилось и не закрылось само по себе.XD_Proxy popup не закрывается

https://s-static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f14545c19c&origin=http%3A%2F%2Flocalhost%2Ff4dcd5fdc&relation=opener&transport=postmessage&frame=f7e77d918&access_token=...&expires_in=6642&signed_request=...&base_domain=localhost

Мой сценарий (урезанная для ясности):

FB.login(function(response) { 
    alert(response.authResponse); 
}, {scope: 'email,user_birthday,publish_stream'}); 

Скрипт работает (он предупреждает ответ), но все-таки всплывающее окно не будет закрыто. Это из-за последних обновлений Facebook? Хотя это странно, что вчера это сработало, и теперь это не так. Не говоря уже о проекте моего друга, который также использует JS SDK, кажется, работает нормально.

Я пробовал использовать другой идентификатор приложения, используя channelURL и т. Д., Но до сих пор не повезло. Последнее средство будет использовать PHP SDK с window.open() для всплывающего окна, но я по-прежнему предпочитаю решение JS, если оно есть.

Спасибо за ответы

+0

У вас была такая радость? Я начал испытывать то же самое. Не могу понять. –

+0

Да, у меня есть! я буду предлагать свое решение ниже, но это не новаторский! – Henson

+0

Увидеть эту же проблему, кроме transport = flash. channelURL не работает, похоже, работает. Может быть связано с этим: http://hustoknow.blogspot.com/2011/06/deconstructing-facebooks-flash-cross.html –

ответ

2

Видимо, мой друг добавил еще одну линию, которую я не знаю, зачем, так что я просто закомментировать ненужные линии, чтобы заставить его работать.

window.fbAsyncInit = function() { 
    FB.init({appId: '<?php echo $this->config->item("facebook_app_id");?>', status: true, cookie: true, xfbml: true, oauth: true}); 
    //FB.UIServer.setLoadedNode = function (a, b){FB.UIServer._loadedNodes[a.id] = b; } 
    }; 

Пара дней назад все работало нормально, поэтому я думаю, что Facebook обновляется в фоновом режиме.

+0

Aha. Эта строка - это взлом, который обошел предыдущую проблему с IE8 и Javascript. У нас также есть это, поэтому я тоже прокомментирую и дам вам знать, как я нахожусь. –

Смежные вопросы