当前位置: 代码迷 >> Web前端 >> 模式对话框画面自提交后,dialogArguments丢失的有关问题(Firefox)
  详细解决方案

模式对话框画面自提交后,dialogArguments丢失的有关问题(Firefox)

热度:119   发布时间:2012-11-23 00:03:43.0
模式对话框画面自提交后,dialogArguments丢失的问题(Firefox)
主画面弹出模式对话框,要求在模式对话框画面能单次动态操作主画面内容可以通过window.returnValue来实现
多次动态操作主画面内容可以通过传递主画面的函数到弹出页面来实现

Firefox下window.showModalDialog弹出的模式对话框画面,画面自提交后,window.dialogArguments会丢失,同时window.opener属性存在

而IE下下window.showModalDialog弹出的模式对话框画面,画面自提交后,window.dialogArguments不会丢失,同时window.opener属性不存在

兼容的做法(没有测试过IE,Firefox以外的浏览器)
	var callBack = null;
	// IE浏览器 (画面自提交后,window.dialogArguments不会丢失,同时window.opener属性不存在)
	if ($.browser.msie){
		callBack = window.dialogArguments;
	}
	else
	{
		// Firefox浏览器(画面自提交后,window.dialogArguments会丢失,同时window.opener属性存在),
		if (window.opener.callBack == undefined) {
			window.opener.callBack = window.dialogArguments;
		}
		callBack = window.opener.callBack;
	}
1 楼 xyztony1985 2010-11-11  
callBackFunction一般传个window对象,也很省事
2 楼 desert3 2010-11-11  
嗯 不过即使是Windows对象,弹出画面自提交后也存在丢失的问题
3 楼 qinglintan 2010-11-12  
returnValue...
4 楼 desert3 2010-11-13  
returnValue只能在关闭模式对话框的时候使用!!!
需求是模式对话框弹出的过程中,操作N次画面
(其实就是弹出一个品牌页面,点击一个按钮就选中
一个品牌,点击N次选择N个)
5 楼 chengxj_1986 2010-11-19  
之前我也做了一个,子窗框访问父窗体有限制,后来我又做了一个div的遮照层
  相关解决方案