簡體   English   中英

Javascript關閉警告框

[英]Javascript close alert box

我希望能夠在一定時間或特定事件(即onkeypress )后使用 Javascript 自動關閉警報框。 從我的研究來看,內置的alert()函數看起來不太可能。 有沒有辦法覆蓋它並控制它打開的對話框?

另外,我不想要一個將隱藏的 div 顯示為警報的覆蓋。 我需要一個實際的對話框。

如前所述,你真的不能這樣做。 您可以使用 UI 框架在窗口內執行模態對話框,或者您可以使用彈出窗口,其中包含一個在超時后自動關閉的腳本……每個都有負面影響。 如果窗口最小化,瀏覽器內的模態窗口將不會創建任何通知,並且程序化(基於計時器)彈出窗口可能會被現代瀏覽器和彈出窗口阻止程序阻止。

看來你可以用Notification API 完成一些類似的事情。 您無法控制它保持可見的時間(可能是某種操作系統偏好——除非您指定 requireInteraction true,否則它會永遠保持或直到被關閉或直到您關閉它),並且它需要用戶單擊“允許”通知”(不幸的是)首先,但這里是:

如果您希望它在 1 秒后關閉(所有操作系統至少將其打開 1 秒):

var notification = new Notification("Hi there!", {body: "some text"});
setTimeout(function() {notification.close()}, 1000);

如果您想顯示比“默認”更長的時間,您可以綁定到 onclose 回調並顯示另一個重復通知,我想,以替換它。

參考文獻:啟發這個答案,但這個問題的答案並不在現代瀏覽器的工作了,但通知API一樣。

無法控制對話框,如果您可以控制對話框,則可以編寫引人注目的 javascript 代碼。 (除了調試之外,將警報用於任何事情都不是一個好主意)

嘗試啟動框插件。

var alert = bootbox.alert('Massage')
alert.show();
setTimeout(function(){alert.modal('hide'); }, 4000);

我希望能夠在一定時間后或在特定事件(即 onkeypress)上使用 javascript 自動關閉警報框

旁注:如果您有警報(“數據”),您將無法保持代碼在后台運行(AFAIK)...。 該對話框是一個模態窗口,因此您也不會失去焦點。 所以你不會有任何按鍵或計時器運行......

我想你可以打開一個彈出窗口,並調用一個對話框。 我不確定細節,但我很確定您可以以編程方式關閉從 javascript 打開的窗口。 這樣就夠了嗎?

這里唯一真正的替代方法是使用某種帶有模式選項的自定義小部件。 查看 jQuery UI 以獲取具有這些功能的對話框示例。 類似的東西幾乎存在於你能提到的每個 JS 框架中。

如果您在 JS 中以編程方式執行此操作,就像重新發明輪子一樣。 我建議使用名為jGrowljQuery插件

你實際上可以做到這一點,你基本上可以監聽這個彈出窗口的發生,然后在它“彈出”之前確認為真,

if(window.alert){
  return true
}

您可以使用標簽並設置其淡入和淡出時間,例如最初隱藏它並在單擊時顯示。 $('#div_Message').fadeIn(500).delay(1000).fadeOut(1500);

window.setTimeout('alert("Message goes here");window.close();', 5000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM