Advertisement

解决谷歌浏览器不支持showModalDialog模态对话框的方法

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文提供了解决Google Chrome浏览器不支持showModalDialog模态对话框问题的有效方法和替代方案,帮助开发者轻松应对兼容性挑战。 我发现Chrome浏览器版本 37.0.2062.103 不支持 showModalDialog 模态对话框,并且无法返回 returnValue 项目原先用到的功能都无法正常执行。为此,我找了一个折中方案,利用 window.open 替代 showModalDialog 并通过 window.opener.document 来操作父页面的元素。 代码如下: ```javascript window.open(xsp/exesp?todo=13, , height=500,width=280,status=yes,toolbar=no,menubar=no,location=no); ``` 关闭新窗口时使用以下代码: ```javascript window.close(); ```

全部评论 (0)

还没有任何评论哟~
客服
客服
  • showModalDialog
    优质
    本文提供了解决Google Chrome浏览器不支持showModalDialog模态对话框问题的有效方法和替代方案,帮助开发者轻松应对兼容性挑战。 我发现Chrome浏览器版本 37.0.2062.103 不支持 showModalDialog 模态对话框,并且无法返回 returnValue 项目原先用到的功能都无法正常执行。为此,我找了一个折中方案,利用 window.open 替代 showModalDialog 并通过 window.opener.document 来操作父页面的元素。 代码如下: ```javascript window.open(xsp/exesp?todo=13, , height=500,width=280,status=yes,toolbar=no,menubar=no,location=no); ``` 关闭新窗口时使用以下代码: ```javascript window.close(); ```
  • showModalDialog()兼容及窗口问题
    优质
    本文介绍了针对谷歌浏览器中 showModalDialog() 方法不兼容的问题,提供了替代方案和解决方案,帮助开发者更好地处理对话框窗口。 在网页开发过程中,`showModalDialog()` 是一个用于打开模态对话框的 JavaScript 函数,在 Internet Explorer 和 Firefox 等浏览器中有广泛支持。然而,谷歌浏览器(Chrome)并不完全兼容这一方法,导致开发者可能会遇到问题:点击按钮后没有出现预期中的对话窗口。这通常是因为 Chrome 的实现方式不同,它使用 `window.open()` 来模拟 `showModalDialog()` 功能。 解决方案中提到的策略是通过检查用户代理字符串 (`navigator.userAgent`) 判断当前浏览器是否为 Chrome。如果检测到 Chrome,则使用 `window.open()` 方法代替,并设置相应的窗口属性,如高度、宽度、位置以及禁止工具栏、菜单栏、滚动条和可调整大小等,从而在 Chrome 中模拟出类似 `showModalDialog()` 的效果。 具体实现中定义了一个名为 `myShowModalDialog` 的函数。该函数接收 URL 和参数对象作为输入,并根据浏览器类型选择合适的方式来打开对话框:对于非 Chrome 浏览器直接调用 `showModalDialog()`,并设置对话框的属性;而对于 Chrome,则使用 `window.open()` 并传递同样的参数来创建一个不可最小化、无工具栏和菜单栏的新窗口。 此外,`showModalDialog()` 返回值在 Chrome 中无法获取。因此,在代码中通过自定义属性模拟这一功能:返回值存储在一个临时变量 `tempReturnValue` 中,并返回给调用者。这样即使是在 Chrome 环境下也能实现与 `showModalDialog()` 类似的操作。 为了应用此解决方案,只需为需要打开对话框的元素(如按钮)添加 `onclick` 事件并调用 `myShowModalDialog()` 函数即可。这将确保在不同浏览器中保持一致的行为,并提高代码兼容性和用户体验。开发人员应该始终关注浏览器之间的差异,并采用适当的策略来解决这类问题,以提升程序的适应性与灵活性。
  • 关于showModalDialog应用详及其兼容性
    优质
    本文深入探讨了 showModalDialog 模态对话框的使用方法,并分析其在不同浏览器中的兼容性和应用限制。 `showModalDialog`是JavaScript `window`对象的一个方法,它用于打开一个新的模态对话框,与`window.open`相似但有所不同。主要的区别在于使用`showModalDialog`打开一个子窗口后,父窗口会失去焦点,用户无法与之交互直到关闭该子窗口。 ### 1. `showModalDialog`是什么? `showModalDialog`用于创建模态对话框的方法。它会在浏览器中开启一个新的窗口,并在该窗口未被关闭前阻止用户操作主页面的内容。当需要从子窗口获取数据时,可以通过设置`window.returnValue`来实现,在父页面中通过调用方法的返回值接收这些信息。 ### 2. 示例 下面是一个使用`showModalDialog`的例子: **main.html** (父窗口): ```html ``` **sub.html** (子窗口): ```html ``` 在这个例子中,点击父窗口的按钮会打开一个新窗口(即子窗口)。在子窗口内设置了一个要传递给主页面的数据值,并通过调用`window.close()`来关闭自己。主页面则可以通过`showModalDialog`方法获取返回的数据。 ### 3. `showModalDialog`详细使用 以下是该函数的语法: ```javascript var returnValue = window.showModalDialog(sURL[, vArguments][, sFeatures]); ``` - `sURL`: 必需,字符串类型,指定要打开对话框的文档地址。 - `vArguments`: 可选,变体类型。用来向对话框传递参数(可以是任何数据格式),子窗口通过`window.dialogArguments`获取这些参数。 - `sFeatures`: 可选,字符串类型。定义了对话框外观和其他特性如大小、位置等。 例如: ```javascript var returnValue = window.showModalDialog(dialog.html, , dialogHeight:400px; dialogWidth:600px); ``` ### 4. 浏览器兼容性 `showModalDialog`在不同的浏览器中支持情况不一致。如Chrome中,此方法的表现与使用`window.open()`类似,父窗口可以正常获取焦点,并且返回值通常为undefined;而在Firefox和Internet Explorer里,则能正确实现模态对话框的效果。 鉴于这种差异,在现代Web开发实践中推荐采用HTML5的``元素、CSS及JavaScript来模拟模态对话框。这种方法允许更多的定制化并且具有更好的控制,同时也能确保在各种浏览器中的行为一致性。
  • Chrome中showModalDialog返回值问题
    优质
    本文介绍了在Google Chrome浏览器中解决showModalDialog模态对话框返回值问题的方法,帮助开发者应对该函数即将被废弃的情况。 在Web开发过程中,`showModalDialog`是一个历史悠久的API,用于打开一个模态对话框以阻止用户继续操作主页面直到与该对话框进行交互为止。然而,在不同浏览器中使用此功能时会遇到一些问题,尤其是在Chrome浏览器中的实现差异和返回值获取的问题上。 基本用法如下: ```javascript var returnValue = window.showModalDialog(url, window, features); ``` 这里`url`是对话框需要加载的URL地址;第二个参数是指向父窗口对象的引用,第三个参数则是一个包含样式选项(如宽度、高度等)的字符串。当使用此方法打开的新窗口关闭时,可以通过设置`window.returnValue`属性来传递返回值,并将其赋给调用函数中的变量。 然而,在某些情况下,Chrome浏览器可能无法正确获取到该返回值,这可能是由于实现方式与其他主流浏览器(例如IE和Firefox)存在差异导致的。为了解决这个问题,可以考虑在弹出窗口中同时设置`window.openerReturnValue`属性来传递数据: ```javascript // 在弹出对话框中的代码片段: window.openerReturnValue = 返回值; window.close(); ``` 然后,在父页面可以通过如下方式获取返回信息: ```javascript var val = window.showModalDialog(...); if (!val) { val = window.openerReturnValue; } ``` 这样,无论是在Chrome、Firefox还是IE浏览器中都可以顺利地获得对话框的返回值。此方法的核心在于利用`window.opener`属性来访问父窗口对象,并通过修改该对象的相关属性传递数据。 尽管在某些场景下使用`showModalDialog`仍然有效,但由于其兼容性和标准支持方面的问题,在现代Web开发实践中更推荐采用其他替代方案如Bootstrap模态组件或jQuery UI对话框等。这些解决方案提供了更好的跨浏览器兼容性、更多的定制选项以及更加符合当前Web编程模式的API。 解决Chrome中`showModalDialog`返回值问题的关键在于了解不同浏览器之间的实现差异,并采取适当的策略来保证代码在各种环境下的正常运行。同时,为了确保项目的可维护性和未来的兼容性需求,建议逐步淘汰使用该方法,转而采用更加现代的技术解决方案。
  • 安装CheerpJ Applet Runner插件,“您问题
    优质
    本篇指南介绍如何在谷歌浏览器中安装CheerpJ Applet Runner插件,以兼容并运行旧版Java小程序,从而解决因浏览器不支持而产生的访问障碍。 安装谷歌浏览器的CheerpJ Applet Runner插件可以解决“Sorry, your browser does not”的问题。首先打开Chrome浏览器,输入`chrome://extensions/`进入扩展程序页面。点击右上角开启开发者模式,然后将文件夹内的.crx后缀离线安装包拖到该页面并松手,根据提示完成安装步骤。最后,在已安装的插件中启用CheerpJ,并刷新需要加载Java资源的网页即可正常使用相关功能。
  • Chrome假死
    优质
    本文章介绍了如何处理和预防谷歌Chrome浏览器出现假死状况的方法,帮助用户提升浏览体验。 在Windows 7系统下使用谷歌Chrome浏览器时常会出现假死现象,特别是在弹出选择框的时候页面会无响应。通过最大化或最小化窗口(可以按F11键)能够暂时恢复正常,但很快又会出现无反应的情况。附件中提供了解决这一问题的方法,并且这些方法已被证实有效。
  • JAVA脚本
    优质
    当遇到浏览器不支持Java脚本的情况时,可以尝试更新浏览器至最新版本、启用或安装JavaScript插件,并检查浏览器设置以确保没有禁用JavaScript。这样能有效解决问题,保障网页功能正常运作。 本段落介绍了如何解决浏览器无法运行JAVA脚本的问题。解决方案包括使用命令行删除DLL文件、注册COM组件等操作。这些方法能够帮助用户解决相关问题。
  • 登录问题
    优质
    本指南提供了解决谷歌浏览器登录问题的有效步骤和技巧,帮助用户快速恢复账户访问。 在使用谷歌浏览器(Chrome)的过程中,用户有时会遇到无法登录账号的问题。这可能是由于多种原因导致的。本段落将深入探讨这个问题,并提供相应的解决方案。 首先,问题可能与插件有关。插件是增强浏览器功能的小程序,但不兼容或冲突的插件可能导致登录问题。检查并管理插件是解决此问题的第一步。进入Chrome设置,点击“更多工具”> “扩展程序”,查看是否有已知冲突或过时的插件,并禁用它们尝试重新登录。 其次,CSS文件可能与网页显示样式有关。这些文件可能是浏览器扩展或自定义主题的一部分,如果它们与网站正常运行发生冲突,则会影响登录界面的加载或功能。确保所有相关的CSS文件没有篡改原网页的默认行为,或者在无痕模式下打开浏览器尝试是否能成功登录,因为无痕模式不加载扩展程序的CSS。 此外,涉及浏览器内部框架和选项设置的内容可能影响到Chrome的功能,包括登录功能。如果这些内容出现问题,请尝试重置Chrome的设置以恢复默认值。路径是:设置 > 高级 > 重置和清理 > 重置设置。 另外,涉及到网页内容格式化的CSS文件也可能导致登录问题。确保这些样式仅应用于预期的网页元素而不是全局应用。 与搜索预加载或页面加载速度相关的CSS可能影响到页面加载过程中的登录行为。检查网络连接是否稳定,并清空浏览器缓存和Cookie以帮助解决问题。 最后,涉及书签和顶部框架样式的CSS可能导致登录按钮隐藏或无法点击的问题。修复这些问题需要更改这些CSS文件或者在开发者工具中调试找出具体问题所在。 解决谷歌浏览器无法登录的问题通常需要综合考虑插件、样式设置、浏览器配置以及网络状况等多个因素。通过逐步排查并测试,可以找到问题根源,并采取相应的措施进行修复。同时,在修改设置或删除插件之前,请始终备份重要的数据以防止不必要的损失。
  • IE JSON 问题
    优质
    本文章主要介绍如何在IE浏览器中处理JSON对象的支持问题,并提供解决方案和实用技巧。适合前端开发者参考学习。 针对IE浏览器不支持JSON对象的问题,可以使用以下代码示例来解决: ```html ``` 这段代码检查当前环境是否缺少JSON对象,并在需要时通过jQuery的`getScript()`方法加载一个外部脚本来提供对JSON的支持。