Javascript 强制Tampermonkey延迟运行/执行脚本

Javascript 强制Tampermonkey延迟运行/执行脚本,javascript,ajax,tampermonkey,Javascript,Ajax,Tampermonkey,如何强制Tampermonkey在AJAX加载每个文档后延迟运行/执行脚本 我希望访问脚本中的这些元素并对其进行更改。但是,即使我在设置页面中将@runat设置为document end,它也会在文档未完全加载时执行。 而且,它发生在这个特定的网站上 我尝试了这些方法,但没有成功: 加载事件 我试图而语句检查是否所有文档都已加载,然后继续执行我的脚本,但它崩溃并陷入无限循环 我试图通过控制台执行一个函数(但控制台无法访问) 那么我该怎么办呢?您想要的内容是由AJAX加载的,所以您需要在脚本中使用

如何强制Tampermonkey在AJAX加载每个文档后延迟运行/执行脚本

我希望访问脚本中的这些元素并对其进行更改。但是,即使我在设置页面中将
@runat
设置为
document end
,它也会在文档未完全加载时执行。 而且,它发生在这个特定的网站上

我尝试了这些方法,但没有成功:

  • 加载事件
  • 我试图
    语句检查是否所有文档都已加载,然后继续执行我的脚本,但它崩溃并陷入无限循环
  • 我试图通过控制台执行一个函数(但控制台无法访问)

  • 那么我该怎么办呢?

    您想要的内容是由AJAX加载的,所以您需要在脚本中使用

    最简单的方法就是使用。比如:

    // ==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");
    }
    

    谢谢,如果我想在所有子节点都已加载/添加到父节点时执行changeFontcolor,可能吗?这就是
    WaitForkKeyments
    所做的。不过,“所有子节点都已加载”的概念通常不适用于AJAX页面。您具体希望与此解决方案有什么不同?为什么?我只需要在所有节点加载一次后,WaitForkElements调用我的函数。但实际上,它不止一次地打电话,通常不会那样工作。请给出一个工作示例,以便我们了解问题所在。这里的很多孩子都在等我(“家长”),我成功地用SetInterval和ClearInterval做了类似的事情,但现在我对此感到好奇。