当Facebook发布自动加载时,我如何让jQuery做一些事情,而不仅仅是在页面加载时?

时间:2013-11-27 06:15:27

标签: javascript jquery facebook google-chrome-extension

我正在制作Chrome扩展程序以从Facebook Feed中删除某些帖子。我正在使用jQuery,我有类似的东西:

    $(document).ready(function() {

    var post = $('.fbTimelineUnit');

    post.remove();

        }
    );

这会删除加载的第一个帖子,但其他帖子只会自动加载并占用已删除帖子所占用的空间。假设我想删除他们进来的所有帖子。我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用 MutationObserver 来监听帖子中的更改(即添加子项)'父元素。 (我不太了解FB,所以你必须自己弄清楚细节。)

某些人喜欢这样:

var postsContainer = ...
var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        // ...if it's a new post delete/remove/hide it somehow
    });    
});
observer.observe(postsContainer, {childList: true, subtree: true });

// When done:
observer.disconnect();

为了帮助您入门,以下是在扩展中使用MutationObserver的一些(简单到不那么简单)示例: