Это мой первый вопрос , заданный , поэтому, если я опущу детали, будьте немного снисходительны. Спасибо!
Я использую плагин Facebook Like Button на своем сайте (пробовал как версию HTML5, так и версию xfbml). Я включил все необходимые теги и скрипты для поддержки xfbml и HTML5. Я следовал «спецификации» и провел тщательный поиск здесь и в других местах проблемы:
Кнопка «Мне нравится» работает правильно, за исключением того, что всплывающее окно / всплывающее окно, которое должно отображаться после нажатия кнопки, не загружается. Я имею в виду load , а не show (и да, я уже проверил наличие overflow:hidden
проблем согласно spec ). Новый <span>
(который включает <iframe>
) добавляется в DOM сразу после кнопки <span>
, и они загружают весь код, который должен быть там:
<span class=" fb_edge_comment_widget fb_iframe_widget " style="top: 19px; left: 0px; z-index: 10000;">
<span>
<iframe id="fa02aa64d8da" class="fb_ltr" scrolling="no" name="fee6eb9f6f2768" style="border: medium none; overflow: hidden; height: 225px; width: 401px;" src="http://www.facebook.com/plugins/comment_widget_shell.php?api_key=233493930007947&locale=en_US&master_frame_name=fa12240bc73214&sdk=joey">
<html>
<head>
<body onload="onPageLoad()">
<script>
var onPageLoad = function() {
document.domain = 'facebook.com';
var loc = window.location.toString();
var index = loc.indexOf('?');
var qs = loc.substring(index + 1);
var params = qs.split('&');
var master_frame_name = '';
for (var i in params) {
var components = params[i].split('=');
if (components[0] == 'master_frame_name') {
master_frame_name = components[1];
break;
}
}
try {
var master_frame = parent.frames[master_frame_name];
master_frame.ExternalNodeConnectWidget.onCommentWidgetLoaded(document);
} catch (e) {}
};
</script>
</body>
</html>
</iframe>
</span>
</span>
Теперь после загрузки <span>
предполагается запустить функцию сценария onPageLoad
, которая должна загрузить всех данных в <iframe>
. Вместо этого я получаю кучу ошибок:
- Имеется печально известная Небезопасная попытка JavaScript для доступа к фрейму с URL
- Когда вы вручную запускаете функцию onPageLoad () (в надежде на загрузку содержимого в iframe) в консоли / Firebug, вы получаете
(в Chrome 15)
Error: SECURITY_ERR: DOM Exception 18
code: 18
message: "SECURITY_ERR: DOM Exception 18"
name: "SECURITY_ERR"
__proto__: DOMException
(в Firefox 7)
Error: Illegal document.domain value
document.domain = 'facebook.com';
Я предполагаю, что это связано с междоменными запросами, но, похоже, что для других людей они просто получают ошибку, но всплывающее окно по-прежнему загружается правильно. Есть идеи, как заставить это работать?