最近做的项目中由于要用到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_...
在火狐浏览器中弹出一个子窗口,子页面中是一个分页,点下一页后子页面会刷新,然后window.dialogArguments对象就丢失了,alert输出显示undefined [解决方法见第三项] 最近做网站的时候需要用到模式化窗口功能,也遇到了...
window.showModalDialog以及window.open用法简介
NULL 博文链接:https://shawnfree.iteye.com/blog/598885
window.showModalDialog以及window.open用法简介
关于struts2里用javascript刷新window.showModalDialog的父页面
使用window.showModalDialog的程序员都知道,该方法可返回值。但是如果遇到跨域时,就返回为underfine。本文档通过iframe镶嵌页面解决该问题。
ShowModalDialog函数的功能: 使用方法: 参数说明:
f1.php页面JS代码,第二个传的参数必须是self不能是别的 代码如下: [removed] function dianJi(){ //弹出窗口关闭前,原窗口不能获得焦点 //showModalDialog(“f2.php”,self,”dialogwidth=500px;dialogheight=500px...
它在最新的 Google Chrome 和最新的 Mozilla Firefox 中进行了测试,在about:config中将dom.dialog_element.enabled首选项设置为true 。 在使用showModalDialog函数之前,只需包含以下 HTML 代码: [removed]...
3> IE与FireFox对两个弹出窗口在跨域时的解析也有不同:通过window.dialogArguments操作父窗口时,在IE下不需要指定document.domain而在FireFox下则正好相反需要指定才能生效;采用opener方式操作父窗口时都不需要...
主页面用window.showModalDialog的时候,如果直接打开其它系统的页面,这时候别人的页面在window.returnValue=1;这样返回值的时候,主页面是取不到返回值的,原因就是因为跨域了.
针对window.showmodaldialog弹出窗体无刷新的详细使用
window.showModalDialog&&open.docx
javascript代码模块之\Window.ShowModalDialog使用手册
showModalDialog和window.open
window.showModalDialog的基本用法
JS中showModalDialog 详细使用 基本介绍: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window.showModalDialog() 方法用来创建一个显示HTML内容的模态对话框。 window....