我正在开发 MVC4 网络应用程序。
我在很多方面都使用 javascript 和 jquery。但是对于这样的信息:
我使用 alert() 函数向用户显示各种消息。 问题是,用户可以阻止此警报的出现。如果用户这样做,很多重要的消息和信息将不会显示给他。
我怎样才能使用户无法阻止警报的出现?
抱歉我的英语不好。谢谢
最佳答案
没有。
您无法阻止用户停止显示提醒。
警报很烦人:
- 他们无论如何都会流行并抢走焦点
- 他们会停止您在页面上所做的一切
警报属于浏览器,而不是网站。同样,避免提示
和确认
(确认有合法用例)。
此外,只是为了证明这一点——从用户态 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) - 将其显示设置为隐藏,并将其设置为类似于“警报”窗口的样式,但样式应适合该站点。
- 在单击按钮时显示它,您可能还想使屏幕的某些部分变暗。
- 当用户点击关闭时,将其显示 css 属性设置为隐藏。
许多流行的框架,如 jQueryUI come with modals .
关于javascript - 不允许用户停止 javascript alert(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17956331/