用户在新载的Facebook时间轴元素上追加()

时间:2016-12-18 15:25:38

标签: javascript jquery facebook userscripts

我正在编写用户脚本以帮助Facebook群组'管理员直接在帖子上执行多项操作。它的目的是添加按钮以禁止用户,删除帖子作者姓名附近的帖子等(浏览群组帖子时)。我已经使用jQuery的append()功能在用户名旁边添加了按钮,并且它已经正常工作 - 它将按钮添加到第14个按钮人员,但在向下滚动时, Facebook会加载其余帖子并且没有按钮。

我的代码:

// ==UserScript==
// @name              admin addon
// @namespace         http://facebook.com/
// @version           1.0
// @description       an addon that makes you perform admin actions with an ease
// @author            mhwq
// @match             https://www.facebook.com/groups/1734441496799901/*
// @require           http://code.jquery.com/jquery-latest.js
// @require           http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
// @grant             GM_addStyle
// @grant             GM_getResourceText
// ==/UserScript==

$(document).ready(function() {
    $( ".fwb.fcg" ).append(' here go the buttons!');
});

现在怎么办?

是否有任何方法可以让按钮显示在每个群组帖子上,即使是这些按钮也会在向下滚动时加载?

1 个答案:

答案 0 :(得分:0)

这些帖子是由AJAX加载的,因此您需要使用支持AJAX的技术,例如MutationObserverwaitForKeyElements()

使用waitForKeyElements,您的脚本变为:

// ==UserScript==
// @name            Facebook admin addon
// @description     an addon that makes you perform admin actions with an ease
// @author          mhwq
// @match           https://www.facebook.com/groups/1734441496799901/*
// @require         http://code.jquery.com/jquery-latest.js
// @require         http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
// @require         https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant           GM_addStyle
// @grant           GM_getResourceText
// ==/UserScript==

waitForKeyElements (".fwb.fcg", appendButtons);

function appendButtons (jNode) {
    jNode.append ('Here are the buttons!');
}