有沒有辦法在JavaScript中覆蓋alert("")
和confirm("")
?覆寫提醒並使用Javascript進行確認
我使用jQuery,所以如果在這個框架中有辦法做到這一點,我會很感激。
我想要做的東西,如:
override alert(msg){
//Show custom stuff here
}
override confirm(msg){
//Show custom stuff here.
return watever;
}
有沒有辦法在JavaScript中覆蓋alert("")
和confirm("")
?覆寫提醒並使用Javascript進行確認
我使用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); }
哈哈,難道每個輝煌的人都會這樣說嗎?如果我問一個朋友「哦,就這麼做,簡單的東西」。感謝您的幫助:) – 2011-04-06 01:01:25
大聲笑,並不意味着它的聲音:) – ctcherry 2011-04-06 01:02:11
大聲笑,一個lvl 40k的傢伙說同樣的事情。 – 2011-04-06 01:03:28
只是定義了一個名爲alert
或confirm
功能。
function alert(){}; function confirm(){};
但是,如果你需要參照原有的功能,那麼你應該通過分配var oldAlert
保存到這些引用,或只是定義alert
另一個函數裏面,所以window.alert
停留不變。
(function() {
function alert(){}; // alert inside of this scope is your custom function
})();
,或者您可以替換window.alert並引用'window.constructor.prototype.alert':P – 2011-04-06 01:10:33
+1,因爲它們不會有相同的阻止操作。 – alex 2011-04-06 01:03:16
那麼這意味着警報仍會出現? – 2011-04-06 01:05:29
我對這一個自己投了票,關於攔截的好點! – ctcherry 2011-04-06 01:05:32