我有一个调用数据库的webapp。每隔一段时间,我们会得到一个javascript警告对话框,说明事务处于死锁状态。老实说,我们不关心是否发生这种情况,因为它不是一个交互式应用程序...它只是根据计时器显示数据,如果这次错过它,可以在下次显示它。
我知道你可以像这样编写警报方法:
window.alert = function alert(msg) {
console.log('Hidden Alert ' + msg);
};
(见Can I prevent an alert() with a Google Chrome Extension)
我的问题是:有没有办法查看警告.contains
的特定字词或短语的消息,如果有,则忽略警报呼叫,否则显示警告?安装扩展来处理这个问题真的不是一个选择。
澄清:
我知道怎么抓住它,如果它有或没有,但我会编写什么代码,如果我正在编写警报代码,继续显示警报?
答案 0 :(得分:3)
window.oldAlert = window.alert;
window.alert = function alert(msg) {
if (not msg contains ...)
window.oldAlert(msg);
};
答案 1 :(得分:2)
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');
这是我的方法。
答案 2 :(得分:1)
您需要捕获原始alert()函数,以便在需要时调用它:
var origalert = window.alert;
window.alert = function(msg) {
if (msg.IndexOf('whatever') >= 0) {
origalert(msg);
} else {
... whatever ...
}
}