Javascript 警报:如果消息包含某个单词,则阻止

Javascript alert: block if message contains certain word?

本文关键字:单词 包含某 警报 如果 消息 Javascript      更新时间:2023-09-26

我有一个调用数据库的Web应用程序。每隔一段时间,我们就会收到一个javascript警报对话框,说事务已死锁。老实说,我们不在乎这种情况是否发生,因为它不是一个交互式应用程序......它只是根据计时器显示数据,如果这次错过了数据,下次可以显示它。

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

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

在 我可以阻止警报() 与谷歌浏览器扩展程序

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

澄清:

我知道如何捕获它,如果它有或没有,但是如果我过度编写警报代码,我会编写什么代码来继续并正常显示警报?

window.oldAlert = window.alert;
window.alert = function alert(msg) {
  if (not msg contains ...)
    window.oldAlert(msg);
};
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/

这是我的方法。

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

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