不允许用户停止javascript警告()

时间:2013-07-30 20:03:32

标签: javascript jquery

我正在开发一个MVC4 Web应用程序。

我使用javascript和jquery来处理很多事情。但对于这样的信息:

enter image description here

我使用alert()函数向用户显示各种消息。 问题是,用户可以阻止此警报出现。如果用户这样做,很多重要的消息和信息都不会显示给他。

如何让用户无法阻止警报显示?

抱歉我的英语不好。感谢

6 个答案:

答案 0 :(得分:8)

你不能 - 感谢上帝

这是由许多不同的浏览器实现的,因为网页会给用户带来警报(或几百个),迫使他们解除其中的每一个,直到你关闭窗口(或者你 ctrl < / kbd> + alt + del 并关闭浏览器) - 请参阅which you decide

作为使用growl / toast消息或某种形式的对话(如jQuery-UI Dialog)的替代方法。此外,按照今天的标准,使用alert()是一种过时的提示用户的方式(鉴于其他选项众多)。

答案 1 :(得分:5)

没有

您无法阻止用户停止显示警报。

警报非常烦人:

  • 他们无论如何都会流行并且重点关注
  • 他们停止在页面上做的任何事情

提醒属于浏览器,而非网站。同样,请避免使用promptconfirm(确认 合法用例)。

此外,只是为了证明这一点 - 用户空间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。他们的设计更好。

模态是:

  • 页面内
  • 不阻止执行
  • 让您控制他们如何看待浏览器的完整性和浏览方式,关闭方式以及它们与网页的互动方式。

但是如何?

  • 创建一个具有固定位置的元素(css position:fixed,或使用带position:absolute的JavaScript)
  • 将其显示设置为隐藏,并将其设置为“警报”窗口,仅使用适合该网站的样式。
  • 单击按钮时显示,您可能也想让屏幕的某些部分变暗。
  • 当用户点击关闭时,将其display css属性设置为hidden。

许多流行的框架,如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