我现在尝试在脚本的执行过程中修改变量。
HTML页面有一个脚本标记,用于调用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
的值以避免重定向。
我已经搜索了几天;但是我被困住了。如果有人能给我一个提示,那就太好了!
感谢您阅读!
答案 0 :(得分:1)
您可以执行的操作是在任何页面脚本运行之前运行脚本,并将val
声明为全局对象window
的不可分配属性{{3} }:
// ==UserScript==
// ...
// @run-at document-start
// ==/UserScript==
Object.defineProperty(window, 'val', { value: 0 });
对全局变量val
的后续分配将不起作用。
val = true;
console.log(val); // => 0
如果变量在var
的同一范围内重新声明,它仍然有效并且不会抛出。
假设您发布的代码属于全局范围。如果它不是,那么就无法从脚本中覆盖该值。在这种情况下,我会尝试另一个途径并直接覆盖window.open
函数。