Вы, похоже, испытываете Facebook ошибка 9777 . Это было вокруг с начала нового all.js. Я думаю, что было несколько попыток исправить это, но это не сработало. Похоже, приоритет только что поднялся на ступеньку на прошлой неделе. Посмотрим, исправится ли это в ближайшее время.
В любом случае проблема, которую вы видите, не вызвана изменением дерева DOM. На самом деле, запускаемый javascript отсутствует даже на вашей странице ... на вашей "верхней" странице.
Сценарий находится в iframes, созданных сценарием facebook вместо ваших fb:like
элементов.
Вместо "некоторые inline js" , если ваш alert
показывает следующее:
alert("This: " + window.location.href + "\nTop: " + window.top.location.href);
вы увидите, откуда это исходит. В "This" URL вы увидите fb_xd_fragment
вместе с целым набором параметров, добавленных к вашему URL. По сути, скрипт facebook перенаправляет каждое окно iframe на URL-адреса, которые вы видите, что запускает ваши скрипты.
В http://developers.facebook.com/docs/reference/javascript/FB.init/ они обсуждают параметр инициализации Custom Channel (channelURL
) как обходной путь, который, похоже, не работает для многих людей. И многие люди получают потоки запросов на пути, который они предоставляют как channelURL.
Просто мысль ... Вы пытались загрузить "like" кнопки, используя метод iframe? Это было быстрее?
В противном случае вы можете попробовать лениво загрузить скрипт all.js ...
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());