读书人

(转)Chrome不支持showModalDialog模态

发布时间: 2013-08-27 10:20:47 作者: rapoo

(转)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等浏览器下都可以通用了。?

  • 读书人网 >Web前端

    热点推荐