DOMNodeInserted事件循环(DOMNodeInserted event loop)

2019-07-29 11:05发布

我开发Facebook上的Chrome扩展(我的第四个问题左右......),它增加了“Like”按钮旁边的自定义按钮。 由于帖子被自动添加到新闻源不需要刷新页面,我必须每天添加新的职位时添加脚本。

我用DOMNodeInserted事件。

问题是,当被称为事件我插入一个新元素(按钮)的网页,它使一个循环!

我的脚本:

$(document).bind('DOMNodeInserted', function(event) {
    $(".like_link").after('<span class="dot"> · </span><button class="taheles_link stat_elem as_link" title="תגיד תכל&acute;ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22}"><span class="taheles_default_message">תכל&acute;ס</span><span class="taheles_saving_message">לא תכלס</span></button>');
    $(".taheles_saving_message").hide();
});

你可以看到我刚才的问题在这里

我已经厌倦了问问题的,所以我会很感激任何答案/发表评论!

Answer 1:

工作的呢? 提供你不插入任何.like_link元素,这应该是一个空操作,当你的元素插入发生,因为它只查找包含一个节点插入.like_link

$(document).bind('DOMNodeInserted', function(event) {
    $(event.target).find(".like_link").after(
        '<span class="dot"> · </span>' +
        '<button class="taheles_link stat_elem as_link" title="תגיד תכל&acute;ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22}">' +
            '<span class="taheles_default_message">תכל&acute;ס</span><span class="taheles_saving_message">לא תכלס</span>' +
        '</button>'
    );
    $(event.target).find(".taheles_saving_message").hide();
});


文章来源: DOMNodeInserted event loop