如何在 Chrome 37 中使用 window.showmodaldialog?

在 Chrome 37 版本中,window.showmodaldialog 方法不再被支持,这对于前端开发者来说可能会带来一些问题。本篇文章将介绍如何在 Chrome 37 中使用 window.showmodaldialog,并提供一些实用的示例代码。

什么是 window.showmodaldialog?

window.showmodaldialog 是一个 JavaScript 方法,它可以在当前页面上弹出一个模态对话框。与 window.open 方法不同,它可以阻止用户操作其他浏览器窗口,直到关闭对话框。

但是,由于安全漏洞的存在,Chrome 37 开始不再支持该方法,因此,如果您在 Chrome 37 中尝试使用该方法,将会得到以下错误提示:

-------- ---------- ------ ------- ------- --- -- ------ -----------------

解决方案

虽然 Chrome 37 不再支持 window.showmodaldialog 方法,但我们可以使用其他替代方案,例如自定义模态对话框或者使用第三方库。

自定义模态对话框

使用自定义模态对话框最简单的方式就是使用 HTML、CSS 和 JavaScript 实现它。下面是示例代码:

---- ---- ---
---- ----------- ---------------
  ---- -----------------------
    -----------
    ---------
    ------- -----------------------------------
  ------
------

---- --- ---
-------
------- -
  -------- -----
  --------- ------
  ---- --
  ------ --
  ------- --
  ----- --
  ----------------- ------- -- -- ----
-

--------------- -
  --------- ---------
  ---- ----
  ----- ----
  ---------- --------------- ------
  ------ ------
  -------- -----
  ----------------- -----
  -------------- ----
-
--------

---- ---------- ---
--------
-------- ------------ -
  ----------------------------------------------- - --------
-

-------- ------------- -
  ----------------------------------------------- - -------
-
---------

在这个示例中,我们创建了一个 id 为 dialog 的 div 元素,并将其设置为固定定位。通过设置 display:none 样式隐藏它,调用 openDialog 函数来显示它,调用 closeDialog 函数来关闭它。

使用第三方库

除了自定义模态对话框之外,还有一些像 Bootstrap、jQuery UI 等第三方库可以提供模态对话框功能。以 Bootstrap 为例,我们可以使用以下代码实现模态对话框:

---- ---- ---
---- ------------ ----- ------------ ------------- --------------
  ---- -------------------- ----------------
    ---- ----------------------
      ---- ---------------------
        --- ---------------------------
        ------- ------------- ------------- -------------------- -------------------
          ----- ---------------------------------
        ---------
      ------
      ---- -------------------
        ---------
      ------
      ---- ---------------------
        ------- ------------- ---------- -------------- --------------------------------
      ------
    ------
  ------
------

---- ---------- ---
--------
----------------------------
---------

在这个示例中,我们使用了 Bootstrap 的模态对话框组件,并在 JavaScript 中调用 $('#myModal').modal('show') 来显示它。

总结

在 Chrome 37 中,window.showmodaldialog 方法不再被支持。为了解决这个问题,我们可以自定义模态对话框或者使用第三方库。无论选择哪种方式,都需要确保我们的代码是安全的并且能够正常工作,这样

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/29101


猜你喜欢

  • 如何将 Twitter Bootstrap CDN 备用为本地拷贝

    在前端开发中,使用 CDN 可以加速页面加载速度,提高用户体验。然而,当 CDN 不可用时,我们需要备用一个本地的副本。本文将介绍如何将 Twitter Bootstrap CDN 备用为本地拷贝。

    7 年前
  • 在AngularJS中使用ng-bind解析HTML

    在AngularJS中,我们可以使用ng-bind指令将数据绑定到视图中。但是,默认情况下,ng-bind指令不会解析HTML标记。这意味着,如果您尝试在ng-bind中使用包含HTML标记的字符串,...

    7 年前
  • 订阅 AngularJS 属性变化

    在 AngularJS 中,我们可以使用 $watch 函数来订阅指定作用域内的属性变化。但是,在某些情况下,我们需要更细粒度的控制,只订阅特定属性的变化。 监听器和表达式 在 AngularJS 中...

    7 年前
  • Angular.copy() 与赋值操作符 (=) 的区别

    在 Angular 应用中,我们经常会遇到需要复制对象或数组的情况。在这种情况下,有两种基本的方法可以使用:angular.copy() 和赋值操作符 (=)。虽然它们都可以用来实现对象和数组的复制,...

    7 年前
  • JavaScript中的循环缓冲区(Circular Buffer)

    在前端开发中,循环缓冲区(Circular Buffer)是一种非常有用的数据结构。它可以在固定大小的数组中存储数据,并且始终保持固定的长度,当达到最大长度时,新数据将覆盖旧数据。

    7 年前
  • 在 document.ready 里面写代码有必要吗?

    很多前端开发者经常会在 JavaScript 代码中使用 jQuery 的 $(document).ready() 函数,以确保 DOM 已经加载完毕再执行他们的代码。

    7 年前
  • 算法:确定序列中所有可能移除一组值的方式

    在前端开发中,我们经常需要对数据进行筛选和过滤。有时候,我们需要从给定的序列中移除一组特定的值,这就需要一个算法来确定所有可能的移除方式。 简介 该算法基于递归思想,通过枚举序列中每个元素是否被移除来...

    7 年前
  • 如何获取 scrollLeft 的最大值?

    介绍 scrollLeft 是 HTML 元素的一个属性,用于获取或设置元素水平滚动条滚动的距离。在前端开发中,我们可能需要动态获取元素的 scrollLeft 最大值,并根据这个值进行一些操作,比如...

    7 年前
  • 在页面加载完成后加载脚本

    在前端开发中,我们通常需要通过 JavaScript 来引入各种外部库和插件。然而,如果这些脚本在页面加载时同时被请求,可能会导致页面加载速度变慢,影响用户体验。那么有没有办法在页面加载完成之后再加载...

    7 年前
  • Babelify 报错:从 node_modules 导入模块时出现 ParseError

    在前端开发中,我们通常使用 Babel 和 Browserify 来编译和打包 JavaScript 代码。然而,当我们在 Babelify 中尝试导入来自 node_modules 的模块时,可能会...

    7 年前
  • React Native: 获取元素的位置

    React Native 是一种使用 JavaScript 构建移动应用程序的框架。在开发应用程序时,经常需要获取某个元素的位置信息。本文将介绍如何使用 React Native 获取元素的位置。

    7 年前
  • Should I use jQuery.each()?

    在前端开发中,我们经常需要遍历数据并对其进行操作。而jQuery提供了一个非常方便的方法——$.each()来帮助我们完成这个任务。但是,在使用它之前,我们需要问一下自己:我是否真的需要使用$.eac...

    7 年前
  • TypeError: Request path contains unescaped characters

    在前端开发中,当我们使用 JavaScript 发起网络请求时,常常会遇到 TypeError: Request path contains unescaped characters 的错误提示。

    7 年前
  • Node.JS: 等待 REST 服务的回调函数

    在前端开发中,我们常常需要调用 REST API。对于 JavaScript 开发者而言,Node.js 是一个非常方便的工具,它可以帮助我们在服务器端处理请求和响应,同时还可以在客户端使用 Java...

    7 年前
  • 使用 Ajax 请求获取原始图像数据并转换为 Data URI

    本文将介绍如何使用 Ajax 请求获取原始图像数据,并将其转换为 Data URI,以便在前端页面中显示。我们还将探讨 Data URI 的优点和缺点,并提供示例代码进行演示。

    7 年前
  • 如何使用 JavaScript 从 URL 中读取 GET 数据?

    在前端开发中,我们常常需要从 URL 中获取参数来对页面进行适当的调整。本文将介绍如何使用 JavaScript 从 URL 中读取 GET 数据。 获取 URL 首先,我们需要获取当前页面的 URL...

    7 年前
  • 如何使用 jQuery 或 JS 获取当前页面的 <head> 内容

    在前端开发中,有时需要动态获取当前页面的 &lt;head&gt; 元素内容,例如获取页面的标题、元描述、关键词等信息。本文将介绍如何使用 jQuery 或 JS 获取当前页面的 &lt;head&g...

    7 年前
  • Jquery 事件处理程序的返回值

    Jquery 是一种流行的 JavaScript 库,它提供了方便的 DOM 操作和事件处理程序。在 Jquery 中,事件处理程序通常返回一个布尔值或 undefined。

    7 年前
  • 嵌套的JSON对象:如何向其中添加(推入)新项目?

    在Web应用程序中,JSON(JavaScript Object Notation)对象已成为前端开发过程中的一个重要组件。嵌套的JSON对象提供了一种灵活的方式来组织数据,并且经常用于存储和传输复杂...

    7 年前
  • Node.JS:如何将变量传递给异步回调函数?

    在使用Node.js中的异步编程时,我们经常需要向回调函数传递变量。但由于异步函数不会在代码顶部阻塞程序执行,因此使用传统的同步方式将变量传递给回调函数是不可行的。本文将介绍几种方法来解决这个问题。

    7 年前

相关推荐

    暂无文章