gpt4 book ai didi

javascript - 关闭 JavaScript 中的脚本?

转载 作者:行者123 更新时间:2023-12-02 15:18:29 26 4
gpt4 key购买 nike

我正在处理一个文档,该文档是一个更大网站的一部分。很多脚本都会自动加载,但其中一个会破坏一些东西,我不知道它是如何包含的。我无法删除它,因为它在其他地方需要(它确实有事件监听器),但它对于我正在运行的其他代码部分没有任何作用,会导致无意义的页面刷新,从而破坏用户的工作(然后,仅在 Chrome )。

为此,javascript 有没有办法关闭另一个源脚本,然后稍后再打开它?

我无法修改目标脚本本身或阻止其最初包含在文档中。

最佳答案

有点...

您始终可以将任何 JavaScript 方法存储在变量中,替换其实现,执行您自己的操作,最后恢复它。

从您的问题来看,尚不清楚这是否可以解决您的问题,我只是因为所有“不可能”的评论而提到这一点。

https://jsfiddle.net/3grfL30s/

function alertSomething(cp){
alert("TEST: " + cp);
}


alertSomething(1);
// from here i dont want alerts, no matter what code is calling the method
// backup method to "x" to restore it later.
var x = alertSomething;
alertSomething = function(){} //overwrite alertSomething to do nothing

//do my work, verify alertSomething is doing nothing
alertSomething(2);

//restore alert method
alertSomething = x;

//verify its working agian
alertSomething(3);

这会产生警报 13,即使在执行代码时调用 2 也是如此。

对于更复杂的方法或非 bool 执行条件,带有附加“标志”的代理模式可能很有用(示例仍然是 bool 值,但可能有多个条件):

https://jsfiddle.net/3grfL30s/1/

function alertSomething(cp){
alert("TEST: " + cp);
}

var doIt = 1;
var originalAlert = alertSomething;
alertSomething = function(cp){
if (doIt){
return originalAlert.apply(this, arguments);
}
}

alertSomething(1);
// in here i dont want alerts
doIt = 0;

//do my work, verify alertSomething is doing nothing
alertSomething(2);

//restore alert method
doIt = 1;

//verify its working agian
alertSomething(3);

关于javascript - 关闭 JavaScript 中的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34278929/

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