Don';不允许用户停止javascript警报()

Don';不允许用户停止javascript警报(),javascript,jquery,Javascript,Jquery,我正在开发一个MVC4网络应用程序 我使用javascript和jquery处理很多东西。但是对于这样的信息: 我使用alert()函数向用户显示各种消息。 问题是,用户可以阻止此警报出现。如果用户这样做,很多重要的消息和信息将不会显示给他 如何确保用户无法阻止警报的出现? 对不起,我的英语不好。谢谢你不能--感谢上帝 这是由许多不同的浏览器实现的,因为网页会向用户发出大量警报(或数百个),迫使用户关闭其中的每一个,直到您可以关闭窗口(或按住ctrl+alt+del并关闭浏览器)——请参阅 作

我正在开发一个MVC4网络应用程序

我使用javascript和jquery处理很多东西。但是对于这样的信息:

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

如何确保用户无法阻止警报的出现?

对不起,我的英语不好。谢谢

你不能--感谢上帝

这是由许多不同的浏览器实现的,因为网页会向用户发出大量警报(或数百个),迫使用户关闭其中的每一个,直到您可以关闭窗口(或按住ctrl+alt+del并关闭浏览器)——请参阅

作为使用咆哮/吐司消息或某种形式的对话框(如jQueryUI对话框)的替代外观。此外,按照今天的标准,使用
alert()
是一种过时的提示用户的方式(考虑到其他选项太多)。

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

警报非常烦人:

  • 无论发生什么,它们都会突然出现,并偷走焦点
  • 无论你在页面上做什么,他们都会停止
警报属于浏览器而不是网站。同样,避免出现提示和确认(确认有合法的用例)

此外,为了证明这一点,从UserlandJavaScript来看是不可能的。为了证明这一点,让我们检查一下负责人:

内部
void webcontentsiml::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\u单击复选框时,此消息将设置为“true”

可以做些什么? 考虑改用。他们在设计上更明智

情态动词是:

  • 内页
  • 不要阻止执行
  • 让您可以控制它们如何查看浏览器的完整性和跨浏览器性,它们如何关闭,以及它们如何与页面交互
但是怎么做呢?
  • 创建一个具有固定位置的元素(css
    position:fixed
    ,或者使用具有
    position:absolute
    的JavaScript)
  • 将其显示设置为隐藏,并将其样式设置为“警报”窗口,仅使用适合站点的样式
  • 单击按钮时显示,您可能也希望使屏幕部分变暗
  • 当用户单击“关闭”时,将其“显示css”属性设置为“隐藏”

很多流行的框架,比如jQueryUI。

你无法阻止复选框的出现。这是在浏览器中实现的一项功能,用户可以选择在站点过度使用警报时阻止警报。您也无法阻止用户选中该框,但如果您的消息对他们来说足够重要,他们肯定不会


你应该考虑使用模态窗口,因为你可以按照你喜欢的样式来调整它们,它们不会阻止脚本/锁定那个标签上的浏览器。

你不能禁用这个行为。如果用户看到所有的通知是至关重要的,不要使用Alcter(),而是使用一个模态窗口。

你不能阻止用户禁用它,而应该考虑使用类似于

的东西。
jQueryUI包含在.net MVC4模板中:D

您不应该使用警报向用户显示重要消息。而是在网页本身中显示消息。有许多插件、库等可以帮助您实现这一点。一个例子是引导,谢天谢地,你不能。你必须创建自己的类似警报的功能(一个假的模态窗口)。我提醒(呵呵)你:它必须是异步的,因此你当前调用警报的方式可能必须改变。回答:不要使用警报。我想可能可以通过使用
setTimeout
setInterval
来做到这一点。我仍然认为这是一个糟糕的主意,但这把小提琴展示了我的意思:禁用警报消息的复选框将永远不会出现。那是美好的过去……按住Enter键,希望它们很快会停止+1@tymeJV:哦,是的;伪装链接并将其发送给朋友,这样他们就可以从你新发现的快乐中获益(然后坐下来对着AIM/ICQ大笑,因为他们诅咒你)。@tymeJV特别是当我们使用alert进行调试时,被一个无休止的循环抓住了……不要阻止执行部分是一把双刃剑。它解决了本机模态的麻烦,但它也是从
警报
(特别是从
确认
提示
)转换过程中可能遇到的障碍。@bfavareto绝对正确,但是正确的JavaScript应该几乎永远不会阻止执行。JavaScript在非阻塞I/O上非常流行。我能想到的警报/提示/确认的唯一合法用例是:1)用户离开页面但不保存(在SO中键入问题后尝试离开页面)。2) 断言用户启动手势的可信事件(例如,内联安装扩展)3)调试。