`
xuxiaolei
  • 浏览: 150219 次
  • 性别: Icon_minigender_1
  • 来自: 彩虹之巅
社区版块
存档分类

在IE和Firefox都通用的弹出对话框

阅读更多
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>对话框测试</title>

<script type="text/javascript">

	var windowArray = new Array();
	
	function destorySonWindow() {
		if(!document.all) {
			for(var i = 0; i < windowArray.length; i++) {
				if(windowArray[i]) {
					windowArray[i].close();
				}
			}
		}
	}

	function showDialog(url, _left, _top, _width, _height, _modal, _resizable, _status, _scroll) {
		var result;
	  	var iTop = (window.screen.availHeight- 30 - _height) / 2;
      	var iLeft = (window.screen.availWidth- 10 - _width) / 2;
		
		if(_left == -1 || _top == -1) {
			_left = iLeft;
			_top = iTop;
		}
		
		var ieFeatures = "dialogWidth=" + _width + "px;" + 
			"dialogHeight=" + _height + "px;" + 
			"dialogLeft=" + _left + "px;" + 
			"dialogTop=" + _top + "px;" + 
			"resizable=" + _resizable + ";" +
			"status=" + _status + ";" + 
			"scroll=" + _scroll; 
		var otherFeatures = "width=" + _width + "," + 
			"height=" +  _height + "," + 
			"left=" + _left + "," + 
			"top=" + _top + "," + 
			"resizable=" + _resizable + "," + 
			"status=" + _status + "," + 
			"scrollable=" + _scroll;
			
		if(_modal == 'yes') {
			window.openSonModel = true;
		} else {
			window.openSonModel = false;
		}
			
		if(document.all) {	//ie			
			if(_modal == 'yes') {
				result = window.showModalDialog(url, window, ieFeatures);
			} else {
				result = window.showModelessDialog(url, window, ieFeatures);
			}
		} else { //other
			otherFeatures += ',modal=' +  _modal;
			result = window.open(url, '_blank', otherFeatures);
			windowArray.push(result);
		}
		
		return result;
	}
	
	function test() {
		showDialog('x.html', -1, -1, 200, 200, 'yes', 'yes', 'yes', 'yes');
	}
</script>

</head>
<body onunload="destorySonWindow()">
	<input type="text">
	
	<input type="button" value="弹出对话框" onclick="test()" >
</body>
</html>

 x.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>x</title>

<script type="text/javascript">

	function reloadParent(url) {
		if(!url || url == '') {
			if(document.all) {
				if(!window.dialogArguments.openSonModel) {
					window.dialogArguments.location.reload();
				}
			} else {
				window.opener.location.reload();
			}
				
		} else {
			if(document.all) {
				if(!window.dialogArguments.openSonModel) {
					window.dialogArguments.location = url;
				}
				 
			} else {
				window.opener.location = url;
			}
		}
	}
</script>

</head>
<body>
	hello, world <br>
	<input type="button" value="重载父页面" onclick="reloadParent()" >
</body>
</html>

 在test.html页面调用showDialog函数可以打开模式和非模式对话框(在firefox上不管modal参数设置成yes或on好像都是非模式对话框,另外,在firefox上主页面,它不会关闭由这个页面打开的对话框,所以,此函数也能在主页面关闭时,关闭由这个页面打开的对话框)。在x.html页面,可以刷新主页面,可以提供刷新url,也可以不提供,另外在ie下的模式对话框是不支持刷新刷新主页面。

6
4
分享到:
评论
1 楼 huiy 2008-12-06  
这个做法比较复杂,firefox中窗口(window.open)有个特殊参数就可以实现IE的模式窗口功能

相关推荐

    ie+FF通用的父子模态对话框相互传值

    在IE和Firefox这两个主流浏览器上实现父子模态对话框之间的值传递,需要对JavaScript有深入的理解,并且考虑到跨浏览器兼容性。以下将详细解释这一技术点。 首先,让我们理解什么是父子模态对话框。父对话框通常是...

    兼容IE,火狐的收藏本页

    本文将深入探讨如何实现在Internet Explorer(IE)与Mozilla Firefox(火狐)浏览器中兼容的“收藏本页”功能,即用户可以轻松地将当前浏览的页面添加到收藏夹或书签中。 #### 一、IE浏览器中的收藏功能实现 在IE...

    捕捉IE关闭按钮事件

    4. **兼容性问题**:由于`onbeforeunload`和`onunload`是IE特有的,它们在其他浏览器(如Chrome、Firefox、Safari等)中的行为可能会有所不同。因此,在实际开发中,为了确保跨浏览器兼容性,你需要使用`window....

    弹出模态窗口实例,半透膜覆盖父窗口

    在IT领域,弹出模态窗口是一种常见的用户界面设计元素,它用于暂停用户与主页面的交互,直到用户处理完弹出窗口中的内容。模态窗口通常被用于显示警告、确认对话框或需要用户输入信息的情况。在这个实例中,我们讨论...

    通用的iframe弹层插件.zip

    5. **浏览器兼容性**:由于目标是实现跨浏览器兼容,开发者可能使用了jQuery的跨浏览器API和特性检测,以确保在不同的浏览器环境下都能正常工作,例如IE、Firefox、Chrome、Safari和Edge等。 6. **用户体验**:良好...

    jquery通用的iframe弹层插件,兼容主流浏览器

    同时,为了达到“兼容主流浏览器”的目标,开发者可能采用了特征检测(feature detection)和渐进增强(progressive enhancement)等策略,确保在Firefox、Chrome、Safari、Edge和Internet Explorer等浏览器中都能...

    Firefox中beforeunload事件的实现缺陷浅析

    在某些版本的Firefox中,这个返回的字符串不会直接显示给用户,而是被一个预设的通用提示取代,这导致了用户体验的一致性问题。 Mozilla官方文档指出,在Firefox 4之前的版本,可以通过修改事件对象的`returnValue`...

    JavaScript 关于浏览窗口不关闭的问题

    此外,压缩包中的文件"JavaScript 不提示关闭窗口代码ie6-ie7-火狐通用_Web开发_网站设计_烈火网_关注站长,建设互联网!.mht"很可能包含了一个具体的示例,演示了如何编写一个适用于IE6-IE7以及火狐的兼容性代码。...

    模拟弹出菜单的代码

    不过,在不同的浏览器环境下(如IE6、IE7与Firefox),代码的表现并不一致。 #### 二、代码解读 首先来看一下给定的部分代码内容: ```html 支付中心-填写资料 ; charset=gb2312"&gt; #testa, #testa2 { width: ...

    DHTML参考手册

    虽然DHTML是一个通用概念,但不同浏览器对它的实现可能有所不同,尤其是在早期,IE与Firefox等浏览器对DOM的支持程度不一。因此,编写DHTML代码时需要注意跨浏览器的兼容性问题。 9. **AJAX(Asynchronous ...

    禁用网页“复制”、“粘贴”的破解方法

    5. 这时会弹出“安全设置”对话框,其中列出了许多可配置的浏览器行为。向下滚动找到“脚本”部分,检查“活动脚本”或“JavaScript”设置,这些脚本可能被用来禁用复制和粘贴功能。如果它们被设为“禁用”,则可以...

    office 由于本机的限制 该操作已被取消

    - 在弹出的对话框中,切换到“键入时自动套用格式”选项卡。 - 检查“Internet及网络路径替换为超级链接”复选框的状态,如果已经被勾选,则需要取消勾选,反之亦然。 - 完成后,保存设置并关闭对话框。 #### 第二...

    window.dialogArguments 使用说明

    - `showModelessDialog()`: 弹出一个非模态对话框,用户可以在对话框和原窗口之间自由切换,更适用于辅助或信息展示。 2. **`window.dialogArguments` 的使用** - 当使用 `showModalDialog()` 或 `...

    KODExplorer 芒果云-资源管理器

    [关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    在XML和DTD文件中,第一个定义的都是根元素。 3.Parent Element(父元素)/Child Element(子元素) 父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。看上面的"结构树",其中是父元素,,是它的子元素,...

    JavaScript实现离开页面前提示功能【附jQuery实现方法】

    例如,在IE8中,你会看到完整的提示信息,而在Chrome中,只能显示系统默认的一部分,而Firefox(野狐禅)可能无法显示自定义的提示信息。 对于那些使用jQuery库的开发者,可以使用jQuery的`bind`方法来绑定`...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生...

Global site tag (gtag.js) - Google Analytics