#jquery #facebook #dom
#jquery #Facebook #dom
Вопрос:
В настоящее время я пишу плагин для браузера, который вставляет некоторые HTML-элементы на страницу. Мне интересно, как я могу заставить свой плагин определять, когда веб-сайт обновил DOM, а затем перейти и изменить HTML по мере необходимости.
В этом конкретном примере я пытаюсь вставить некоторый HTML-код на Facebook. Используя $ (document).функция ready () не работает, поскольку Facebook обновляет свою страницу с помощью AJAX. Похоже, это верно, когда пользователь переходит на страницу группы, а также когда пользователь прокручивает страницу вниз и загружает дополнительную информацию.
Я не могу просто прикрепить прослушиватель щелчков или прокрутки с помощью .live(), поскольку мне все равно нужно будет дождаться завершения обновления страницы, прежде чем я смогу изменить DOM.
У кого-нибудь есть идеи?
Ответ №1:
Вы можете загрузить комментарий с помощью JavaScript со следующим кодом:
var abc = $("#fb-comments-wrapper");
var b = "<fb:comments href="page_url" num_posts="2" width="420"></fb:comments>"
abc.html(b);
После этого вызовите следующий код, который загрузит комментарий facebook в div
названный ‘fb-comments-wrapper’ и вызовет функцию ‘facebookCommentLoaded’ при загрузке:
FB.XFBML.parse(document.getElementById('container_of_fb-comments-wrapper'),facebookCommentLoaded);
Ваша «facebookCommentloadedfunction» может делать то, что вы хотите:
function facebookCommentLoaded() {
$(".uiBoxYellow").css("display","none");
$(".commentas").css("display","none");
}
Однако я не смог внести какие-либо изменения в стиль в div facebook. Каким-то образом они были недоступны document.getElementByClass
. Кажется, facebook изменяет dom таким образом, что предотвращает пользовательский CSS.