在 运行 时间用 greasemonkey 更改 javascript 变量

Changing a javascript variable with greasemonkey at running time

我有一个页面,里面有一个 .js 脚本, 在页面中

    <script>
        Client.includeJS(
            'js/scratchticket.js'
        );
    </script>

在这个scratchticket.js

下面是代码

 $(document).ready(function() {
        ...
        var xxx = 100;    
        ...
  });

所以我在 greasemonkey 中测试了各种代码,但我无法编辑这个变量,例如200

我测试用 adblock 阻止 scratchticket.js 并将整个代码粘贴到 greasemonke 脚本中并更改 var 但它不起作用,我不知道为什么页面显示正在加载...当时它应该执行代码。

知道如何以其他方式更改变量吗?

您需要提供更多信息和代码才能得到合适的答案。重要的是要知道 何时 用户脚本运行以及是否有任何授权。

如果你只想更改 JS 代码设置初始值,请考虑监听 beforescriptexecute 事件。触发时,您必须首先确定事件目标是否是您要查找的脚本。然后您可以搜索并替换所需的 JavaScript 行。您必须取消原始脚本的执行,并将新 <script> 标记中的修改代码插入 DOM,因为您无法直接操作加载的脚本。

问题实际上是@Quasimodo 上面的克隆答案在执行时是绝对错误的,而且恰恰相反。

引用他引用的 wiki:

document-end 是 Greasemonkey 一直以来的标准行为(参见 DOMContentLoaded)。 如果没有提供值,这是默认值。

因此,您的问题可能是那些开​​始使用用户脚本的人的常见问题,因为您的脚本执行得太迟(结束),您只需在顶部添加此指令:

// @run-at        document-start

试试看是否有帮助!