Сегодня я потратил четыре часа и несколько попыток решить эту проблему, но не смог.
Мы используем facebook.connect
для авторизации пользователей на нашем сайте и выполнения различных действий.Одно из этих действий должно вызвать fbml:dialog
, я решил использовать новый JavaScript SDK.Вот функция, которую я использую:
function popupModalWindow(cat) {
var oldSize = FB.UIServer.Methods["fbml.dialog"].size;
FB.UIServer.Methods["fbml.dialog"].size = {width: 402, height: 112};
//FB.UIServer.id = FB.UIServer._active[id];
var messages = {
interesting: '<p>By submitting my entry, I confirm that I have obtained permission from the persons whose picture and/or voice appears in my entry for use and publication in this contest as outlined in the Official Rules [link]</p>'
};
// alert(messages[cat]);
FB.ui(
{
method: 'fbml.dialog',
//id: 'ololo',
display: 'dialog',
width: 402,
height: 112, /**/ //Should work that way according to the API reference
size : {width: 402, height: 112},
fbml: '<link rel="stylesheet" href="http://rentatext.mygrate.biz/styles.css"/><div class="modal-white" style="width: 402px;">'+
'<h6>User Agreement</h6>'+
'<fb:js-string var="oloe">document.getElementsByTagName("iframe")[0].id;</fb:js-string>'+
'<div class="inner">'+messages[cat]+' <a class="fb-close" onclick="FB.UIServer._active[oloe].close()">i agree</a></div></div>'
,
},
function() {
alert(1);
}
);
console.debug(FB.UIServer);
}
К сожалению, дизайнер сделал эти модальные окна с серым фоном, и некоторые пользователи могут не заметить стандартную кнопку «Закрыть» в правом верхнем углу диалога.Мне нужно привязать событие к какому-либо пользовательскому элементу, который закроет этот диалог.Я пробовал разные подходы, но ни один из них не сработал.
Последний из них выдает «a138033292903816_FB не определен», когда я нажимаю a.fb-close
с помощью обработчика события onclick.Может быть, я что-то упустил, я много гуглил, но безуспешно.