最近做的项目中由于要用到showModalDialog,很自然的调用它的父窗口就用window.dialogArguments了,在网上许多友说
FireFox 2.0不支持dialogArguments只有FireFox
3.0才支持,我没在2.0上运行过,但至少3.0是支持的,言归正传,在showModalDialog窗口中需要分页显示,所以等程序写好后在IE下
运行很正常,但在FireFox
3.0中运行时,如果页面不跳转则可以正常的调用window.dialogArguments,若页面一跳转则会丢失
window.dialogArguments的引用。我试了些其他的方法也没有很好的解决,最终想到了如果在showModalDialog窗口中放置
框架的话,则可以很好的解决这个丢失window.dialogArguments的引用的问题,框架代码如下:
<frameset rows="0,100%" border="0" id="mainFrameset">
<frame src="about:blank" mce_src="about:blank" />
<frame src="MessageSend.do?method=selectUsers&entpTypeId=${af.map.entpTypeId}" mce_src="MessageSend.do?method=selectUsers&entpTypeId=${af.map.entpTypeId}" id="mainFrame" name="mainFrame" />
<noframes>
<body>
对不起,您的浏览器不支持框架
</body>
</noframes>
</frameset>
其中mainFrame则是需要分页显示的帧页面,在此页面中如果需要引用dialogArguments对象的话,代码如下:
var parentWindow = window.parent.dialogArguments;
道理很简单,父窗口的引用dialogArguments是被框架持有的,而我需要的分页页面只是该框架中的帧页面,当页面跳转时只是帧页面刷新而框架本
身不刷新,所以dialogArguments的引用就不会丢失了,用框架的另一好处就是如果在showModalDialog窗口中跳转页面后需要还在
原来窗口打开则无需另外写代码,它默认就是在帧页面显示的!
分享到:
相关推荐
It was tested in the latest Google Chrome with the *Enable Experimental JavaScript* flag enabled in `chrome://flags/#enable-javascript-harmony` and in the latest Mozilla Firefox with the *dom.dialog_...
在Firefox中,当使用`showModalDialog()`并且页面发生跳转时,`window.dialogArguments`对象会丢失,而在IE中则不会。这是因为Firefox的实现与IE有所不同。有两种解决方案: a. 将弹出的页面放入`frameset`或`...
`window.dialogArguments` 是一个在旧版的IE浏览器(Internet Explorer)中特有的JavaScript对象,它主要用于在模态对话框(`showModalDialog()`)和无模态对话框(`showModelessDialog()`)之间传递数据。...
然而,`Window.showModalDialog()`在现代浏览器中的支持并不一致,特别是在Chrome和Firefox中,出于安全和性能考虑,已经逐渐被弃用。开发者更倾向于使用`window.open()`配合`display: none`的CSS和JavaScript来模拟...
在JavaScript编程中,`window.showModalDialog`是一个用于打开模态对话框的函数,它能够创建一个新的浏览器窗口或者在当前窗口内显示一个弹出层,阻止用户与父窗口的交互,直到用户关闭对话框为止。这个方法在创建...
3> IE与FireFox对两个弹出窗口在跨域时的解析也有不同:通过window.dialogArguments操作父窗口时,在IE下不需要指定document.domain而在FireFox下则正好相反需要指定才能生效;采用opener方式操作父窗口时都不需要...
在其他浏览器中,如Firefox、Chrome和Safari,可能需要使用其他方法,如`window.open()`,配合CSS和JavaScript来实现类似的效果。 - 模态对话框可能会对用户体验造成影响,因为它会阻塞用户的交互,因此在现代Web...
它在最新的 Google Chrome 和最新的 Mozilla Firefox 中进行了测试,在about:config中将dom.dialog_element.enabled首选项设置为true 。 在使用showModalDialog函数之前,只需包含以下 HTML 代码: [removed]...
1. **兼容性问题**:`dialogArguments`主要应用于Internet Explorer浏览器中,现代浏览器如Chrome、Firefox并不支持`window.showModalDialog()`方法,因此在跨浏览器开发时需特别注意。 2. **安全性和隐私**:由于`...
需要注意的是,由于`showModalDialog`在某些浏览器(尤其是现代的Chrome和Firefox)中被弃用,开发者应考虑使用其他替代方案,如Bootstrap的模态插件、自定义CSS和JavaScript实现的模态框,或者使用HTML5的`<dialog>...
JavaScript中的`window.showModalDialog()`方法是Internet Explorer浏览器在IE4及更高版本中引入的一个功能,用于创建一个模态对话框。模态对话框是一种特殊的窗口,它在打开后会阻止用户与页面的其他部分交互,直到...
`window.showModalDialog()` 是一个在早期Web开发中常用的JavaScript函数,用于打开一个模态对话框,即在对话框打开期间,用户无法与对话框之外的任何页面元素交互。这个函数在IE4及以上版本的Internet Explorer中...
5. **兼容性问题**:由于`showModalDialog`在现代浏览器中的支持度已经下降,文章可能会提到与IE、Firefox、Chrome等浏览器的兼容性问题,以及替代方案。 6. **优点和缺点**:分析`showModalDialog`相比于其他弹窗...
需要注意的是,`showModalDialog`在现代浏览器中的支持情况并不理想,特别是在Chrome和Firefox等浏览器中已经默认禁用或计划移除。因此,如果需要跨浏览器兼容,开发者通常会选择使用`window.open`配合`window.post...
在其他浏览器,如Firefox和Internet Explorer,`showModalDialog`通常能正确实现模态对话框的效果。 由于这种不一致性,开发人员在使用`showModalDialog`时需要考虑跨浏览器的兼容性问题。在现代Web开发中,为了...
- 这些方法在现代浏览器中的支持情况可能不同,尤其是跨浏览器兼容性问题,例如 `showModalDialog()` 在某些版本的Firefox和Chrome中可能已被废弃或不推荐使用。 - 考虑到兼容性和用户体验,开发者通常会使用HTML5...