jquery 不允许使用者停止javascript警示()

rn0zuynd  于 2022-11-22  发布在  jQuery
关注(0)|答案(7)|浏览(129)

我 正在 开发 一 个 MVC4 网络 应用 程序 。
我 使用 javascript 和 jquery 做 很多 事情 。 但是 对于 这样 的 信息 :

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

    • 如何 让 使用 者 无法 停止 显示 警示 ? * *

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

a9wyjsp7

a9wyjsp71#

编号
您 无法 阻止 用户 停止 显示 提醒 。
警报 非常 烦人 :

  • 他们 无论 如何 都 要 跳 出来 抢 镜头
  • 它们 会 停止 您 在 页面 上 的 任何 操作

提醒 * * 属于 浏览 器 * * 而 不是 网站 。 同样 , 避免 promptconfirm ( 确认 有 * a * 合法 用例 ) 。
此外 , 为了 证明 这 一 点 - 这 是 不 可能 的 从 userland 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 , 或 使用 JavaScript position:absolute
  • 将 其 显示 设置 为 隐藏 , 并 将 其 样式 设置 为 " 警报 " 窗口 , 只 使用 适合 网站 的 样式 。
  • 当 按钮 被 点击 时 显示 它 , 你 可能 也 想 变 暗 屏幕 的 一 部分 。
  • 当 用户 单击 " 关闭 " 时 , 将 其 display css 属性 设置 为 hidden 。

许多 流行 的 框架 , 如 jQueryUI come with modals

tp5buhyn

tp5buhyn2#

你 不能 ... 感谢 上帝
这 是 由 许多 不同 的 浏览 器 实现 的 , 因为 网页 会 向 用户 发出 大量 ( 或 数百 个 ) 警告 , 迫使 他们 关闭 每 一 个 警告 , 直到 你 可以 关闭 窗口 ( 或 你 ctrl + alt + del 并 关闭 浏览 器 ) - - 参见 which you decide
作为 使用 咆哮/toast 消息 或 某种 形式 的 对话 框 ( 如 jQuery-UI 对话 框 ) 的 替代 方式 。 此外 , 按照 今天 的 标准 , 使用 alert() 是 一 种 过时 的 提示 用户 的 方式 ( 考虑 到 有 太 多 的 其他 选项 可用 ) 。

3zwtqj6y

3zwtqj6y3#

您无法禁用此行为。如果用户看到您的所有通知是至关重要的,请不要使用alert(),而使用模态窗口。

brjng4g3

brjng4g34#

您无法阻止用户禁用该功能,而应考虑使用类似www.example.com的内容http://jqueryui.com/dialog/#modal-message
jQueryUI包含在.net MVC4模板中:D

pw136qt2

pw136qt25#

你无法阻止这个复选框的存在。这是浏览器中的一个功能,当网站过度使用提醒时,用户可以选择阻止提醒。你也无法阻止用户选中这个复选框,但如果你的信息对他们足够重要,他们肯定不会选中。
你应该考虑使用模态窗口,因为你可以根据自己的喜好设置它们的样式,而且它们不会阻止脚本/锁定该选项卡上的浏览器。

mnowg1ta

mnowg1ta6#

你不应该使用alert来显示你的用户的重要信息。相反,应该显示网页本身的信息。有很多插件,库等可以帮助你。一个例子是Bootstrap http://getbootstrap.com/components/#alerts-default

zy1mlcev

zy1mlcev7#

用户 可以 停止 显示 这些 警报 。
但是 , 您 可以 检测 这些 警报 是否 显示 :

const start = Date.now();
const question = "Are you sure?";
const confirmed = window.confirm(question);
const duration = Date.now() - start;

if (duration < 10) {
  // Confirm dialog is disabled
} else {
  // Handle confirmed
}

中 的 每 一 个

相关问题