Javascript 如何";“自动关闭”;警报框

Javascript 如何";“自动关闭”;警报框,javascript,alert,legacy-code,Javascript,Alert,Legacy Code,我们的控制权是由一家不复存在的公司所拥有的。 出于某些奇怪的原因,在页面加载时,它现在开始向页面呈现如下内容: <script type="text/javascript"> alert('Your license has expired!') </script> 警报('您的许可证已过期!') 由于该公司已不复存在,我们无法获得支持,控件也非常复杂,并且运行在一些无法快速替换的遗留代码中,因此简单地重写页面也不是一个选项(目前) 目前我需要做的是在对话框呈现之前

我们的控制权是由一家不复存在的公司所拥有的。 出于某些奇怪的原因,在页面加载时,它现在开始向页面呈现如下内容:

<script type="text/javascript">
 alert('Your license has expired!')
</script>

警报('您的许可证已过期!')
由于该公司已不复存在,我们无法获得支持,控件也非常复杂,并且运行在一些无法快速替换的遗留代码中,因此简单地重写页面也不是一个选项(目前)

目前我需要做的是在对话框呈现之前将其从页面中删除,或者由脚本自动关闭


有什么想法吗?

我认为您不能这样做,因为和警报框需要确认。您可以制作一个弹出警报,并将其设置为超时关闭。

您不能关闭警报框,只能劫持窗口。警报

window._alert = window.alert;
window.alert = function () {    
};
代码必须出现在第三方库的代码之前。这意味着,如果要使用警报,必须更改代码

一种方法是调用具有引用的方法

window._alert("hi");
另一种方法是重载“new”函数


查看此处的副本:@Atrox111,这对OP的问题没有帮助如果第三方代码立即触发警报,您可以在执行第三方代码后恢复警报功能:
window.alert=window.\u alert。当然,如果警报是异步触发的,则这不起作用。epascarello解决方案的一种变体是,不发送布尔值来决定是否应该出现真正的警报窗口,而只是检查消息是否为“您的许可证已过期!”并且在这种情况下忽略调用窗口。\u alert()。@Strille,伙计,我今天早上没喝咖啡,这是个好主意!当需要黑客时。。。堆栈溢出在家:)我可以看出你没有读OP的帖子。OP无法控制警报。
window._alert = window.alert;
window.alert = function (msg, showItNow) {    
    if (showItNow) {
        window._alert(msg);
    }
};
window.alert("BOOOO!");  //I will not show up
window.alert("hi", true); //I will show up