我正在开发一个MVC4 Web应用程序。
我使用javascript和jquery来处理很多事情。但对于这样的信息:
我使用alert()函数向用户显示各种消息。 问题是,用户可以阻止此警报出现。如果用户这样做,很多重要的消息和信息都不会显示给他。
如何让用户无法阻止警报显示?
抱歉我的英语不好。感谢
答案 0 :(得分:8)
你不能 - 感谢上帝。
这是由许多不同的浏览器实现的,因为网页会给用户带来警报(或几百个),迫使他们解除其中的每一个,直到你关闭窗口(或者你 ctrl < / kbd> + alt + del 并关闭浏览器) - 请参阅which you decide。
作为使用growl / toast消息或某种形式的对话(如jQuery-UI Dialog)的替代方法。此外,按照今天的标准,使用alert()
是一种过时的提示用户的方式(鉴于其他选项众多)。
答案 1 :(得分:5)
您无法阻止用户停止显示警报。
警报非常烦人:
提醒属于浏览器,而非网站。同样,请避免使用prompt
和confirm
(确认 合法用例)。
此外,只是为了证明这一点 - 用户空间JavaScript是不可能的。为了证明这一点,我们来检查the source code负责人:
内部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
被设置为'true'。
请考虑使用modals。他们的设计更好。
模态是:
position:fixed
,或使用带position:absolute
的JavaScript)许多流行的框架,如jQueryUI come with modals。
答案 2 :(得分:4)
您无法禁用此行为。如果用户看到所有通知至关重要,请不要使用alert(),而是使用模态窗口。
答案 3 :(得分:3)
您无法阻止用户禁用该功能,而是考虑使用http://jqueryui.com/dialog/#modal-message
之类的功能jQueryUI包含在.net MVC4模板中:D
答案 4 :(得分:2)
你不能阻止那个复选框在那里。它是在浏览器中实现的功能,用户可以选择在网站过度使用时阻止警报。您也无法阻止用户查看该框,但如果您的邮件对他们来说足够重要,他们肯定不会。
您应该考虑使用模态窗口,因为您可以根据需要设置它们的样式,并且它们不会阻止脚本/锁定该选项卡上的浏览器。
答案 5 :(得分:1)
您不应使用警报向用户显示重要消息。而是在网页本身内显示消息。有许多插件,库等可以帮助您解决这个问题。一个例子是Bootstrap http://getbootstrap.com/components/#alerts-default