在 运行 时间用 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
试试看是否有帮助!
我有一个页面,里面有一个 .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
试试看是否有帮助!