2012-01-18 26 views
4

可以說我們有窗口對象的alert方法。我想用不錯的alertbox加強它。如何覆蓋javascript本機對象的內建方法

另外我想保存現有的警報方法,以便我們可以在應用程序結束後切換回來。

這樣的事情,但它在Firefox的控制檯拋出錯誤。

window.prototype.alert = function(){ 

} 

回答

3

你可以;

var base = window.alert; 
window.alert = function(message) { 
    document.getElementById("myalertwidget").innerHTML = message; 
    return base.apply(this, arguments); 
}; 
+0

'base.apply(這一點,參數)'只是正確地調用*原*'警報()'如果您希望這樣做 – 2012-01-18 11:58:04

5

沒有window.prototype對象。 window是JavaScript上下文的全局對象,它不是從原型創建的。

但是,想要做的是用下面的代碼實現:

window.old_alert = window.alert; 
window.alert = function(txt) { 
     // do what you need 
     this.old_alert(txt); 
}