2017-02-17 44 views
0

改变与Greasemonkey的一个javascript变量i在页面有一个页面,里面有一个.js脚本, 其在运行时间

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

scratchticket.js

被下面的代码

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

所以我testet在greasemonkey各种代码,但我不能编辑这个变量,它是例如200

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

任何想法如何以其他方式更改变量?

回答

1

问题是,上面的@Casimodo的克隆答案在执行时是绝对错误的,而它恰恰相​​反。

引述他引用维基:

文件高端是标准行为的Greasemonkey一直有(见DOMContentLoaded)。 如果未提供任何值,则这是默认值。

所以,您的问题可能是常见的一种对于那些userscripts起步的,在你的脚本执行为时已晚(末端),你只需要在顶部加入这个指令:

// @run-at  document-start 

试试看看是否有帮助!

0

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

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

+0

代码是在一个框架内,当我点击一个链接时打开。 – chwzr

+0

GM脚本默认为“@ run-at document-start”(请参阅​​官方网站https://wiki.greasespot.net/Metadata_block,目前显然已停用)。这是在任何网站执行之前,所以你可以使用上面描述的方法。 GM也默认在帧中执行一个用户脚本。 –