Ух ты, я пытаюсь сделать то же самое и искал это в то же самое время, когда ты отправил этот вопрос!Не так много об этом.
Я сталкивался с http://www.techjam.gr/2011/web-design/execute-javascript-facebook-button-clicked/, который объясняет, что делать, чтобы запустить скрипт обратного вызова после очень четкого нажатия кнопки.Я вижу, что вы уже делаете это по большей части, но, возможно, есть несколько объяснений, которые вы пропустили или не указали.
Также у меня возникли большие проблемы при попытке перенаправить родительский элементкадров, потому что это вызывает междоменную ошибку безопасности доступа к JavaScript.Не уверен, что это часть твоей проблемы.В моем случае я планирую просто перенаправить свою страницу iframe из файла no-fan.php в файл fan.php по щелчку мыши - мне не нужно переоценивать, являются ли они фанатами или нет, с моим кодом fangate, если онинажал кнопку «Нравится».
Надеюсь, что это поможет вам.
ОБНОВЛЕНИЕ:
Получил работу с помощью по ссылке выше!Вот что я сделал (код ниже): Обязательно используйте обычный код FB.init.Добавьте скрипт обратного вызова с кодом перенаправления над кнопкой.Добавьте xfbml версию кнопки «Нравится».Вот и все!
Обратите внимание, что я действительно использовал top.window.location и в любом случае отправил его в свой оценочный код fangate.Причина в том, что если вы просто перенаправляете фрейм, он оставляет остальную часть страницы как есть, и у него все еще есть кнопка в стиле Facebook рядом с заголовком.Обновление всей страницы приводит к тому, что все выглядит так, как должно, и избегает путаницы.
код:
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId :'your id here',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'full path to file', // channel.html file
oauth : true // enable OAuth 2.0
});
</script>
<script>
FB.Event.subscribe('edge.create', function(href, widget) {
top.window.location = 'your tab url';
});
</script>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like"><fb:like href="your page you want to like" send="false" layout="button_count" width="200" show_faces="false"></fb:like></div>