我正在开发一个 MVC4 Web 应用程序。
我使用 javascript 和 jquery 来做很多事情。但是对于这样的信息:
我使用 alert() 函数向用户显示各种消息。问题是,用户可以阻止此警报出现。如果用户这样做,很多重要的消息和信息将不会显示给他。
如何使用户无法阻止警报出现?
对不起,我的英语不好。谢谢
我正在开发一个 MVC4 Web 应用程序。
我使用 javascript 和 jquery 来做很多事情。但是对于这样的信息:
我使用 alert() 函数向用户显示各种消息。问题是,用户可以阻止此警报出现。如果用户这样做,很多重要的消息和信息将不会显示给他。
如何使用户无法阻止警报出现?
对不起,我的英语不好。谢谢
你不能——谢天谢地。
这是由许多不同的浏览器实现的,因为网页会向用户发出警报(或数百个),迫使他们关闭每一个,直到您可以关闭窗口(或者您ctrl+ alt+del并关闭浏览器)- -看看你决定。
作为使用咆哮/吐司消息或某种形式的对话框(如 jQuery-UI 对话框)的替代外观。此外,alert()
按照今天的标准,使用 是一种过时的提示用户的方式(考虑到可用的其他选项过多)。
您无法阻止用户停止显示警报。
警报非常烦人:
警报属于浏览器而不是网站。同样,避免prompt
s 和confirm
s (确认有一个合法的用例)。
此外,只是为了证明这一点 - 从用户态 JavaScript 是不可能的。为了证明这一点,让我们检查负责的源代码:
里面void WebContentsImpl::RunJavaScriptMessage
if (suppress_this_message) {
// If we are suppressing messages, just reply as if the user immediately
// pressed "Cancel".
OnDialogClosed(rvh, reply_msg, false, string16());
}
当您单击复选框时,依次suppress_this_message
被设置为“真”。
考虑改用模态。他们在设计方面做得更好。
模态是:
position:fixed
或使用 JavaScript with position:absolute
)许多流行的框架,如 jQueryUI都带有modals 。
您不能禁用此行为。如果用户看到您的所有通知至关重要,请不要使用 alert(),而是使用模式窗口。
您不能阻止用户禁用它,而是考虑使用类似http://jqueryui.com/dialog/#modal-message
jQueryUI 包含在 .net MVC4 模板中:D
您无法阻止该复选框出现。这是浏览器中实现的一项功能,用户可以在站点过度使用警报时选择阻止警报。您也无法阻止用户选中该框,但如果您的消息对他们足够重要,他们肯定不会。
您应该考虑使用模态窗口,因为您可以随意设置它们的样式,并且它们不会阻止脚本/锁定该选项卡上的浏览器。
您不应该使用警报来向您的用户显示重要消息。而是在网页本身内显示消息。有许多插件、库等可以帮助您解决这个问题。一个例子是 Bootstrap http://getbootstrap.com/components/#alerts-default