首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

(转)Chrome不支持showModalDialog模态对话框和无法返回returnValue的有关问题

2013-08-27 
(转)Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题浏览器是否支持状态IE9○?Firefox1

(转)Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题
浏览器是否支持状态IE9○?Firefox13.0○?safari5.1○?chrome19.0×并不是模态对话框,而是open了一个新窗体Opera12.0×什么也发生,连个窗体都不弹

?

Chrome到底打开的是什么

因为打开的不是模态对话框,而是像open了一个新窗体一样,那只要验证一下子窗体window.opener是否为空就明白了。

?

?

浏览器模态对话框window.openerwindow.dialogArgumentsreturnValue??IE9?○?undefined?[object Window]?○?Firefox13.0?○?[objectWindow]?[object?Window]?○?safari5.1?○?[objectWindow]?[object?Window]?○?chrome19.0?×?[objectWindow]?undefined?×

?

以上是我测试的结果,各个浏览器所支持的程度还是不一样的。还要说一下Firefox浏览器下,子窗体假如刷新的话window.dialogArguments照样会丢失,变成undefined。以上结果中我们可以看出返回值returnValue就只有chrome浏览器返回的是undefined,其他浏览器都没有问题。那该如何解决这个问题呢?

解决returnValue问题

? 通过以上的种种测试,我们已经知道chrome的showModalDialog方法很像执行了window.open方法,那么我们可以利用window.opener来实现window.returnValue的功能。

? 父窗体部分js代码:

}??
  • window.close();??

    ? 这样也在IE,FireFox,Chrome,Safari等浏览器下都可以通用了。?

  • 热点排行