gpt4 book ai didi

javascript - GreaseMonkey - 在执行期间修改变量

转载 作者:行者123 更新时间:2023-11-29 23:53:28 25 4
gpt4 key购买 nike

几天来,我一直在尝试在脚本执行期间修改变量。

HTML 页面有一个 script 标签,它调用一个 JavaScript 文件:

<script type="text/javascript" src="script.js"></script>

我们在 JS 文件中有这样的东西:

/*File's beggining*/
val = 1;
if (val == 1) { window.open('getout.html', '_self');}
...
/*File's ending*/

我想修改 val 的值以避免重定向。我已经找了几天了;但我卡住了。如果有人能给我提示,那就太好了!

感谢阅读!

最佳答案

您可以做的是在页面的任何脚本运行之前运行您的脚本,并将 val 声明为具有 Object.defineProperty 的全局对象 window 的不可分配属性:

// ==UserScript==
// ...
// @run-at document-start
// ==/UserScript==

Object.defineProperty(window, 'val', { value: 0 });

对全局变量 val 的后续赋值将无效。

val = true;
console.log(val); // => 0

如果变量在与 var 相同的范围内重新声明,它仍然有效并且不会抛出。

假设您发布的代码在全局范围内。如果不是,则无法从您的脚本中覆盖该值。在那种情况下,我会尝试另一种途径并直接覆盖 window.open 函数。

关于javascript - GreaseMonkey - 在执行期间修改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42222739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com