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

时间:2017-02-17 23:11:04

标签: javascript variables firefox greasemonkey

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

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

在这个scratchticket.js

是以下代码

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

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

我试着用adblock阻止scratchticket.js将整个代码粘贴到greasemonke脚本中并更改var但它不起作用,我不知道为什么页面说加载...当它应该做的时候代码。

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

2 个答案:

答案 0 :(得分:1)

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

引用维基引用:

document-end 是Greasemonkey一直拥有的标准行为(请参阅DOMContentLoaded)。 如果未提供任何值,则为默认值。

所以,你的问题可能是那些以用户脚本开头的人的常见问题,因为你的脚本执行得太晚(结束)而你只需要在顶部添加这个指令:

// @run-at        document-start

尝试一下,看看它是否有帮助!

答案 1 :(得分:0)

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

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