有人有在JavaScript中重写alert()函数的经验吗?
哪些浏览器支持这个功能? 哪些浏览器版本支持此功能? 重写函数的危险是什么?
有人有在JavaScript中重写alert()函数的经验吗?
哪些浏览器支持这个功能? 哪些浏览器版本支持此功能? 重写函数的危险是什么?
当前回答
它在firefox和ie8中确实有效。我看不出有什么浏览器是它不能运行的。这是javascript工作的基本原理,尽管人们不经常看到它与原生函数一起使用=)
其他回答
现代浏览器中的所有JavaScript实现都支持重写。
危险很简单,如果您重写了诸如alert()这样的常见函数,就会把其他团队成员逼疯。
所以除非你重写函数作为调试或修改现有代码的工具,否则我认为没有任何理由这样做。只需要创建一个新函数。
超铃报警功能无危险。每个浏览器都支持它。
例如:
// function over riding. Redirecting to Console with Firebug installed.
function alert(message) {
console.info(message);
}
alert('This is an override.');
我遇到过一个要求,即在显示实际警报消息的同时显示默认消息。这就是我如何做到的。
const actualAlertFunc = window.alert;
window.alert = function(msg) {
actualAlertFunc('some default message '+ msg);
}
我已经在chrome上测试过了。 我不确定这是否是一种好的做法,但它达到了目的。
它在firefox和ie8中确实有效。我看不出有什么浏览器是它不能运行的。这是javascript工作的基本原理,尽管人们不经常看到它与原生函数一起使用=)
我做的一个快速破解来找到警报来自哪里,是去控制台,然后输入这个
function alert(message) {
console.info(message);
debugger;
}