gpt4 book ai didi

javascript - 除非刷新页面,否则 Grease/tampermonkey 脚本无法正常工作

转载 作者:行者123 更新时间:2023-11-30 00:18:18 25 4
gpt4 key购买 nike

我经常访问一个以可怕的方式忽略用户的论坛。如果您将某人置于忽略状态,这几乎会使该用户的存在更加普遍。

所以我写这个来完全隐藏它们:

// ==UserScript==
// @name Freddie
// @namespace http://tampermonkey.net/
// @version 0.1
// @description hide annoying forum users
// @author You
// @match http://www.scout.com/college/kansas/forums/*
// @grant none
// ==/UserScript==
/* jshint -W097 */

'use strict';

function checkForDiv() { // crappy workaround function to wait for AJAX content
if (!document.getElementById("wrapper")) {
setTimeout(checkForDiv, 300);
} else {
checkNames();
}
}

function checkNames() {
var mybannedList = ["Pyros", "GOHawksGators", "th30r3o"]; // add usernames here
var nms = document.body.querySelectorAll('a.authName'), i = 0, len = nms.length;
for (i; i < len; i++) {
if (mybannedList.indexOf(nms[i].innerHTML) != -1) {
nms[i].parentNode.parentNode.style.display = "none";
}
}
}

checkForDiv();

但是当您转到包含被忽略用户的页面时,他们仍然会出现,刷新后,脚本会运行,他们就会消失。

请问各位大神,我该怎么办?

最佳答案

该站点使用 AJAX 进行导航,因此无需重新加载页面地址即可更改,这就是为什么当您从该站点上的另一个页面导航时 Tampermonkey 不会注入(inject)您的脚本。

最简单的解决方案是包括整个站点://@match http://www.scout.com/*

还有其他更高级的方法可以检测基于 MutationObserver 或导航时发生的某些 DOM 事件或属性更改的页面转换。

还要注意通过 @require 加载 jQuery 的 @grant none:除非您使用 jQuery.noConflict,否则它会破坏同时加载 jQuery 的站点。最简单的解决方案是删除该行,因为您不需要访问网页变量。

附言有一个已知的基于计时器的包装器:waitForKeyElements .

关于javascript - 除非刷新页面,否则 Grease/tampermonkey 脚本无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com