Javascript 警报:如果消息包含特定单词则阻止?

Javascript alert: block if message contains certain word?

我有一个调用数据库的网络应用程序。每隔一段时间,我们就会收到一个 javascript 警告对话框,提示交易已陷入僵局。老实说,我们不在乎是否会发生这种情况,因为它不是交互式应用程序...它只是根据计时器显示数据,如果这次错过了,下次再显示也没关系。

我知道你可以像这样重写警报方法:

window.alert = function alert(msg) {
  console.log('Hidden Alert ' + msg);
};

(在 Can I prevent an alert() with a Google Chrome Extension 找到)

我的问题是:有没有办法查看警报的消息.contains一个特定的单词或短语,如果有则忽略警报呼叫但显示警报否则? 安装扩展程序来处理这个问题确实不是一种选择。

澄清:

我知道如何捕捉它是否存在,但是如果我写完了警报代码,我应该编写什么代码来继续并像往常一样显示警报?

window.default = window.alert;
window.alert = function alert(msg) {
  var word = 'foo';
    if (msg.indexOf(word) != -1){
        console.log('contains');
        // do what you wanna do if contains
    }else{
       window.default(msg);
    }
};

alert('foo');
alert('bar');

http://jsfiddle.net/pnkcpvLj/

这是我的方法。

window.oldAlert = window.alert;
window.alert = function alert(msg) {
  if (not msg contains ...)
    window.oldAlert(msg);
};

您需要捕获原始的 alert() 函数,以便在需要时调用它:

var origalert = window.alert;
window.alert = function(msg) {
   if (msg.IndexOf('whatever') >= 0) {
      origalert(msg);
   } else {
      ... whatever ...
   }
}