Плагин для браузера с jQuery - захват обновлений DOM (особенно для Facebook) - PullRequest
0 голосов
/ 08 октября 2011

В настоящее время я пишу плагин для браузера, который вставляет некоторые элементы HTML на страницу.Мне интересно, как я могу заставить свой плагин определять, когда веб-сайт обновил DOM, а затем перейти и изменить HTML-код по мере необходимости.

В этом конкретном примере я пытаюсь вставить некоторый HTML-код в Facebook.Использование функции $ (document) .ready () не работает, поскольку Facebook обновляет свою страницу с помощью AJAX.Это кажется верным, когда пользователь переходит на страницу группы, а также когда пользователь прокручивает страницу вниз и загружает дополнительную информацию.

Я не могу просто прикрепить прослушиватель щелчка или прокрутки с помощью .live (), так как мне все еще нужно будет дождаться, пока страница закончит обновление, прежде чем я смогу сменить DOM.

У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 07 февраля 2012

Вы можете загрузить комментарий, используя 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);

Ваша функция FacebookCommentloaded может делать то, что вы хотите:

function facebookCommentLoaded() {
    $(".uiBoxYellow").css("display","none");
    $(".commentas").css("display","none");
}

Я, однако, не смог внести какие-либо изменения в стиль div'ов на Facebook. Каким-то образом они не были доступны через document.getElementByClass. Кажется, Facebook модифицирует DOM таким образом, что предотвращает пользовательский CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...