【问题标题】:Disable a built-in function in javascript (alert)禁用 javascript 中的内置函数(警告)
【发布时间】:2011-05-19 14:23:28
【问题描述】:

简单:我想禁用/覆盖alert()

我可以这样做吗?

更重要的是,这样做对吗?

那么严格模式呢?

【问题讨论】:

  • 为什么要禁用它?如果你想覆盖,因为你想让它显示 html、样式和东西,你可以尝试使用 javascript + 覆盖。
  • 完全正确。事实上,使用alert() 是没有用的。这让我和用户都很恼火。我想覆盖它,因为我使用的脚本包含它,我不想修改它(并跟踪那个 modif)。

标签: javascript alert overwrite strict


【解决方案1】:

是的,您可以禁用或覆盖alert()。不,这样做是不对的,除非在一些奇怪和有限的情况下。

禁用:

window.alert = function() { }; 

覆盖:

window.alert = function(text) { /* do something */ };

【讨论】:

  • 你测试过这个吗?它在 IE 中不起作用。在 IE 中必须是 window.alert = ...
  • @Tim Down - 注意第一个 js 语句右侧的 //comment
  • 我看到了,但它读起来好像您在展示两种选择(alert = ...window.alert = ...)同样好,但实际上并非如此。
  • @Tim Down,我会重写的。
  • 为什么这样做不正确?我完全不同意你的观点
【解决方案2】:

是的,你可以,这是你的选择。您还可以存储原始的“警报”:

window.nativeAlert = window.alert;
window.alert = function(val){console.log(val+' (alert disabled)');};

现在旧警报仍然可用:nativeAlert('something');

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2017-10-12
    相关资源
    最近更新 更多