如果包含特定字符串,则覆盖警报框
Override alert box when contains specific string
当警报框包含特定字符串时,我想覆盖它的样式,否则将保留为默认字符串。我试着用控制台记录它,这样我就可以设置if条件,但响应如下:
function alert() { [native code] }
同样,当我尝试了一些不同的东西,比如:
window.old_alert = window.alert;
window.alert = function(message){
console.log(message);
alert(message);
}
我在控制台中收到警报消息,但由于未知原因,它冻结了我的浏览器1000多次,窗口中没有任何弹出窗口。应该如何处理?任何帮助或指导都是非常受欢迎的。
window.old_alert = window.alert;
window.alert = function(message){
console.log(message);
alert(message); //THIS called the new alert recursively, hence the freeze
}
你想做的是:
window.oldAlert = window.alert;
window.alert = function(message) {
var SpecificString="test";
if(message.indexOf(SpecificString) >= 0) {
console.log(message);
} else {
window.oldAlert(message);
}
}
这是一个jsfiddle
您刚刚用该代码引发了一个无限递归!
window.old_alert = window.alert;
window.alert = function(message){
console.log(message);
alert(message); // this calls your modified alert causing an infinite recursion
}
相反,您需要的是:
window.old_alert = window.alert;
window.alert = function(message){
if(message === "some special string") my_new_alert(message); // call special alert
else old_alert(message); // this calls the original alert
}
..
my_new_alert = function(message) {
// modified alert UI
}
您可以像这样覆盖alert
,但不能更改警报框的默认样式。如果你需要不同风格的提醒,你需要使用自己的弹出对话框。
var old_alert = window.alert;
window.alert = function() {
console.log(arguments[0]);
return old_alert.apply(this, arguments);
};
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 在循环中分配json值时,值被覆盖
- 谷歌地图固定位置覆盖
- 货币代码为欧元-金额的格式不应包含小数
- 如何包含特定于每个视图angularjs的javascript文件
- 我如何修复包含在captcha的addthis中的错误
- 是否可以动态覆盖推特引导弹出窗口的位置
- 用 php 覆盖包含特定用户名的文本文件中的一行
- 覆盖在“背景大小:包含”上的响应式 DIV - 解决警报触发的问题
- 如何在浏览器 JS 控制台中包含脚本时覆盖内容安全策略
- 浏览包含package.json的文件夹时,Browserify会覆盖自己的配置
- 如果包含特定字符串,则覆盖警报框
- 可以't使用Angular.js$http设置或覆盖特定标头
- 检测覆盖是否包含标记对象.谷歌地图API V3,绘图库
- JavaScript - 使用包含异步回调但仍返回原始值的函数覆盖函数
- 推特引导程序,旋转木马上的图像覆盖
- 在包含相对".js"后缀的npm包中使用aurelia-cli需要导入(特别是autobahn)
- jQuery覆盖包含选项,只允许不被兄弟元素使用的空间
- 有没有办法使用 jsp 中包含的 js 文件中的函数覆盖 jsp 中存在的 js 函数
- 如何使用正则表达式匹配不包含特定子字符串的字符串?