我正在编写用户脚本以帮助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!');
});
是否有任何方法可以让按钮显示在每个群组帖子上,即使是这些按钮也会在向下滚动时加载?
答案 0 :(得分:0)
这些帖子是由AJAX加载的,因此您需要使用支持AJAX的技术,例如MutationObserver
或waitForKeyElements()
。
使用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!');
}