如何强制 Tampermonkey 在 AJAX 加载每个文档后运行/执行脚本?
我希望访问脚本中的这些元素并更改它们。但是,尽管我设定了@run-at
to document-end
在设置页面中,它在文档未完全加载时执行。
而且,它发生在这个特定的网站上!
我尝试了这些方法但没有成功:
- 加载事件。
- I tried
while
语句来检查所有文档是否已加载,然后继续执行我的脚本,但它崩溃并陷入无限循环。
- 我尝试控制台执行一个函数(但控制台无法访问)。
那我该怎么办?
你想要的内容正在通过AJAX加载,所以你需要使用AJAX 补偿技术 https://stackoverflow.com/q/15048223/331508在你的脚本中。
最简单的方法是使用waitForKeyElements() https://stackoverflow.com/a/11197969/331508。就像是:
// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
waitForKeyElements (
"jQUERY SELECTOR TO THE NODE(S) YOU WANT",
changeFontColor
);
function changeFontColor (jNode) {
jNode.css ("color", "red");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)