这是一个常见的问题,正如你所说,等待页面加载是不够的 - 因为AJAX可以并且确实在那之后很长一段时间内改变事情。
对于这些情况,有一个标准的(ish)健壮实用程序。它是 waitForKeyElements()
实用程序。
像这样使用它:
// ==UserScript==
// @name _Wait for delayed or AJAX page load
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/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 major design
change introduced in GM 1.0.
It restores the sandbox.
*/
waitForKeyElements ("YOUR_jQUERY_SELECTOR", actionFunction);
function actionFunction (jNode) {
//-- DO WHAT YOU WANT TO THE TARGETED ELEMENTS HERE.
jNode.css ("background", "yellow"); // example
}
提供目标页面的确切详细信息,以提供更具体的示例。