像alert()函数一样停止页面执行

2024-03-24

当我写作时alert('Hello'),页面执行停止并等待批准才能继续。

我有一个div设置为使用 HTML 显示为虚假警报 - thisdiv有一个“确定”按钮。

我希望页面停止执行(就像警报一样),直到用户单击“确定”。

是否可以 ?


你不能。只有特殊的内置程序才能做到这一点。有一段时间有showModalDialog https://developer.mozilla.org/en-US/docs/Web/API/Window/showModalDialog特殊的内置功能可让您为内容指定 URI,从而对其进行自定义,但它从未得到广泛支持,现在甚至被曾经支持它的浏览器也不推荐使用。

相反,使您当前的警报功能使用div接受警报关闭时的回调(或返回关闭时已结算的承诺),以允许您继续处理。

例如,如果您的代码曾经使用alert并像这样工作:

function foo() {
    var x;

    x = doSomething();
    alert("Alert! Alert!");
    doSomethingAfterTheAlertIsCleared(x);
    doAnotherThingAfterward();
}

...你可以将其更改为:

function foo() {
    var x;

    x = doSomething();
    fakeAlert("Alert! Alert!", function() {
        doSomethingAfterTheAlertIsCleared(x);
        doAnotherThingAfterward();
    });
}

请注意,现在警报后面的所有代码都在一个函数中,我们将其引用传递到fakeAlert. The foo函数在假警报仍然显示时返回,但最终用户消除假警报并调用我们的回调。请注意,我们的回调代码可以访问调用中的局部变量foo我们正在处理,因为我们的回调是一个闭包(不要担心这是一个相当新和/或神秘的术语,闭包并不复杂 http://blog.niftysnippets.org/2008/02/closures-are-not-complicated.html).

当然,如果警报后唯一的事情是不带任何参数的单个函数调用,我们可以直接传递该函数引用。例如,这个:

function foo() {
    doSomething();
    alert("Alert! Alert!");
    doSomethingAfterTheAlertIsCleared();
}

becomes:

function foo() {
    doSomething();
    fakeAlert("Alert! Alert!", doSomethingAfterTheAlertIsCleared);
}

(请注意,没有() after doSomethingAfterTheAlertIsCleared- 是引用函数对象,不调用该函数;fakeAlert会调用它。)

如果您不确定如何做fakeAlert将调用回调,它将位于用户“关闭”警报 div 的事件处理程序内,并且您只需调用回调的参数,就像对函数的任何其他引用所做的那样。因此,如果fakeAlert将其接收为callback,你这样称呼它callback();.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

像alert()函数一样停止页面执行 的相关文章

  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • 仅在 Chrome 上我收到此错误:Uncaught TypeError: Illegal constructor [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我在 Chrome 上加载 jQuery 时 我会收到此错误 Uncaught TypeError Illegal constr
  • 使用 Jquery 传递隐藏字段值

    我有一个正常的hidden Input field我在哪里生成random string 我需要将其附加到我尝试将数据发布到另一个页面的 URL 中 我已经做到了这一点并且效果很好 url Upload html field1 newval
  • 在 jQuery 中获取 SELECT 的值和文本[重复]

    这个问题在这里已经有答案了 可能的重复 获取选择框中选定选项标签的值 https stackoverflow com questions 7380604 getting the value of the selected option ta
  • 如何将 STRUCT - OR - JSON 传递给 Coldfusion CFC 方法

    我有一个现有的 CFC 在将结构传递到方法中时可以正常工作 问题是 我们现在还需要通过 JSON 将数据传递到同一函数中 这是 CFC 片段
  • Javascript:我应该隐藏我的实现吗?

    作为一名 C 程序员 我有一个习惯 将可以而且应该私有的东西设为私有 当 JS 类型向我公开其所有私有部分时 我总是有一种奇怪的感觉 而且这种感觉并没有被 唤起 假设我有一个类型draw方法 内部调用drawBackground and d
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • Rangy:插入符号下的单词(再次)

    我正在尝试创建一个预输入代码以添加到 wysihtml5 富文本编辑器 基本上 我需要能够插入人员 标签引用 例如 Twitter Github Facebook 我发现一些人试图实现同样的事情的代码 http jsfiddle net A
  • 如何在具有相同值的下拉菜单上触发 jQuery 更改事件

    即使用户选择相同的值 如何每次都触发 jQuery 更改事件 我需要刷新效果 例如如果用户选择Lawyer它会发出警报hello然后用户再次选择Lawyer从下拉菜单中 它应该发出警报hello 我怎样才能实现它 以下是代码 jQuery
  • 如何按 Angular 表中的属性(该属性具有单个 rownspan)进行分组?

    我没有找到这个问题的合适标题 我的问题是 例如 我有一个包含两列的表 列汽车品牌和列汽车型号 我希望表是 like in this picture 换句话说 品牌名称只会出现 1 次 我的输入数组采用以下 json 格式 brand Aud
  • Aurelia 中的角度服务?

    我还没有找到详细说明如何从 Angular 1 x 迁移到 Aurelia 的详细文档 到目前为止 我只看到人们详细介绍了 Angular 的概念directive可以在 Aurelia 中使用重制 customElement 好吧 足够简
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • 使用 ng-if 改变角度方向

    我想通过单击将方向从 rtl 更改为 ltr and in 设置 html
  • 意外的令牌:尝试解析 JSON 字符串时

    我正在尝试解析这个 JSON 字符串 RESULTS name Thessaloniki GR type Sailing l sailing weather beach Porto 20Carras 20Marina 45904 name
  • 如何使用 javascript 更改文件扩展名

    有谁知道在 Javascript 中更改文件扩展名的简单方法吗 例如 我有一个带有 first docx 的变量 但我需要将其更改为 first html 这将改变字符串包含文件名 let file first docx file file
  • 将 JSON 属性绑定到表单

    我有一个 JSON 对象和一个
  • JQuery UI:将长元素放在光标位置而不是元素的中间

    我有一些很长的可拖动元素 可以将它们放入背景表的所有单元格中 当我开始拖动此类元素并将其悬停在可放置容器 表格的单元格 上时 了解元素将被放置到何处的 热点 点是其自身的中间 不幸的是 我的元素的中间通常不可见 并且将元素放在正确的位置是没
  • 如何为 jQuery 插件设置私有变量?

    我想创建一个简单的插件 它使用元素的文本作为默认值 或者您可以在调用插件时设置此值 但是 如果我不设置该值 并为多个元素调用插件 则默认值会成倍增加 function fn reText function options var setti
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • $ 在 JQuery 中意味着什么

    在下面的 var obj one 1 two 2 three 3 four 4 five 5 each obj function i val console log val 这里是什么意思 是对象吗 是一个别名jQuery对象 函数 它充当

随机推荐

  • 8-10 年后恢复 Java 开发速度

    我上一次认真进行 Java 编码是在世纪之交的时候 与此同时 我做了很多其他的事情 最近是 c 嵌入式的东西 和 c 几个月后我将开始一项新任务 而且很可能一直都是 Java 除了我将与 JBoss 处理某些应用程序之外 我没有太多信息 所
  • 为什么“poly”抱怨度数小于唯一点的数量?

    我正在尝试在 R 中生成正交多项式 但我不断收到一个我不明白的错误 gt poly 1 1000 50 Error in poly 1 1000 50 degree must be less than number of unique po
  • 如何在JPA的BaseEntity中实现equals()和hashcode()方法?

    我有一个BaseEntity类是我的应用程序中所有 JPA 实体的超类 MappedSuperclass public abstract class BaseEntity implements Serializable private st
  • 如何隐藏使用 Electron 构建的 NodeJS 解决方案的源代码(asar 文件)? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我寻找隐藏使用 Electron 构建的解决方案代码的最佳方法 有任何想法吗 使用 Electron 构建解决方案asar 文件不够
  • 如何让BMP填充JPanel

    如何让BMP填满JPanel import java awt Dimension import java awt Graphics import java awt Graphics2D import java awt Image impor
  • 在 Angular 中使用 fxLayoutGap 时,每行最后一个元素的填充问题

    我目前面临一个大问题https www npmjs com package angular flex layout https www npmjs com package angular flex layout图书馆 问题是fxLayout
  • 生成随机日期

    如何生成特定日期范围内的一组 12 个随机日期 我认为以下方法会起作用 sample as Date 1999 01 01 as Date 2000 01 01 12 但结果看起来像是一组随机数字 谢谢 seq有一个类方法Date适用于此
  • LINQ to SQL:并发解析

    鉴于此 LINQ to SQL using var db Database Context var root from post in db Post where post Id rootPostId select post Single
  • Haskell 将 Hom Functor/Monad 称为什么?

    我想在我的代码中使用它 并且不想重复它 但由于它只涉及大量通用单词 如 函数 或 组合 我无法通过搜索找到它 完全具体地说 我正在寻找 instance Functor x gt where fmap f p f p 这是基本的读取器 或环
  • 在 Java Swing 中播放视频

    我正在做一个关于视频隐写术的项目 我想到在Java Swing中播放这2个视频文件 以便更容易地比较文件 所以我想知道我们是否可以在 Swing 中播放视频 请帮帮我 您可能想看看Java媒体框架 http www oracle com t
  • 在 django 中获取相关值而不出现DoesNotExist 错误的最佳实践

    如果我在 Django 中有两个模型 class Blog models Model author models CharField class Post models Model blog models ForeignKey Blog 我
  • AJAX 不处理 302 重定向

    我在外部服务器上有一个数据库 我正在尝试查询该数据库 为此 我将在本地服务器 Tomcat 上创建一个 AJAX 调用 只是 XMLHttpRequest 对象 我没有使用任何 JavaScript 库 到附加了查询的页面 将完全相同的 U
  • 如何将数据从 Windows 窗体保存到 XML 文件?

    我非常确定我必须首先创建 XML 文件的某种模型 对吧 任何帮助将不胜感激 一种简单的方法是创建 NET 类 将数据放入其中然后使用Xml序列化器 http msdn microsoft com en us library system x
  • 在 Google 地图 v3 中绘制两点之间的路线时行为不一致

    场景 我试图在两者之间画一条路线n使用 Google 地图 v3 的点 纬度 局域网 为此 我正在使用DirectionsService它为我提供了一条路线 然后我将该坐标推入MVCArray然后使用 a 绘制该路径Polyline The
  • 饮食例外

    我正在解析一个不时包含格式错误的数据的文件 它抛出一个异常 我想从异常中恢复并忽略格式错误的数据 最好的方法是什么 try parse file catch Exception eat it EDIT 我认为 我的问题没有被很好地理解 我想
  • 如何在Flutter中将CameraController的XFile转换为Image类型?

    扑动的CameraController has a takePicture 从相机拍照的方法 给出了类型Future
  • 有没有办法不用每次验证就使用Google Api?

    我尝试在 PC 上的自动运行中使用 python 上的 API 但我不能 因为每次程序启动时 它都会询问我授权码 这是我的代码 client secret file client secret json flow google auth o
  • postgresql 分区上的唯一索引

    我有一个名为 cdrs 的表 CREATE TABLE cdrs i cdr bigint NOT NULL i cdrs connection bigint NOT NULL i call bigint NOT NULL customer
  • 单线程异步处理

    即使读完之后http krondo com p 1209 http krondo com p 1209 or 异步调用是否总是创建 调用新线程 https stackoverflow com questions 598436 does an
  • 像alert()函数一样停止页面执行

    当我写作时alert Hello 页面执行停止并等待批准才能继续 我有一个div设置为使用 HTML 显示为虚假警报 thisdiv有一个 确定 按钮 我希望页面停止执行 就像警报一样 直到用户单击 确定 是否可以 你不能 只有特殊的内置程