有没有一种方法可以覆盖 JavaScript 中的 alert("")
和 confirm("")
?
我使用 jQuery,因此如果这个框架中有方法可以实现,我会很感激。
我想做类似于:
override alert(msg){
//Show custom stuff here
}
override confirm(msg){
//Show custom stuff here.
return watever;
}
有没有一种方法可以覆盖 JavaScript 中的 alert("")
和 confirm("")
?
我使用 jQuery,因此如果这个框架中有方法可以实现,我会很感激。
我想做类似于:
override alert(msg){
//Show custom stuff here
}
override confirm(msg){
//Show custom stuff here.
return watever;
}
是和不是。你可以简单地替换它们:
window.alert = function(msg){
// stuff
}
但是您将无法获得警报和确认所提供的阻塞功能,即没有办法使此代码工作:
if(confirm('Do Something?')){
// do stuff
}
通常情况下,你最好是编写其他函数来达到类似的功能,而不是试图替换它们。
只需重新定义它:
window.alert = function(msg) { console.log(msg); }
只需定义一个名为alert
或confirm
的函数。
function alert(){}; function confirm(){};
然而,如果您需要参考原始函数,则应通过分配var oldAlert
或仅在另一个函数内定义alert
来保存对它们的引用,以便window.alert
保持不变。
(function() {
function alert(){}; // alert inside of this scope is your custom function
})();
window.constructor.prototype.alert
:P - user578895
function confirm(msg, cb){ .... cb('Clicked OK'); }
和confirm('Are you sure?', function(button){ .... });
。 - user578895