showModalDialog 模态对话框

原创 2013年12月04日 09:48:32

通过父窗口打开子窗口

<html>
	<head>
	<TITLE>模态对话框</TITLE> 
	<script language=javaScript>
	function openDialog(){
		var obj = {"name":"huangbiao"};
var result = window.showModalDialog("email.html",obj,"dialogHeight:200px;dialogWidth:200px;edge:sunken");
		alert("您传递的参数为:" + result) 
	}
	</script>
	<body>
		<button id="dialog" onclick="openDialog()">打开对话框</button>
	</body>
</html>

 

 

子窗口的代码

<html>
<head>
<TITLE>子窗口</TITLE> 
<base target="_self">
<script language=javaScript>
//得到父窗口传递过来的参数
var abc = window.dialogArguments;
alert(abc.name);
//传递给父窗口的参数值
window.returnValue = "biaobiao";

function closeWindow(){
	window.close();
}
</script>
<link rel="stylesheet" href="../style.css"></head>
<body>
<div>
	<form>
		收件人:<input type="text">
		主题:<input type="text">
		内容:<textarea></textarea>
	</form>
	<a href="http://www.cnblogs.com/hynxy0115/archive/2009/03/18/1415654.html">href</a>
	<input type="button" onclick="closeWindow()" value="关闭窗口"/>
</div>
</body>
</html>

 一、showModalDialog和showModelessDialog有什么不同?
  showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。
  showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响
备注:如果是想得到模态对话框返回过来的参数值,就要使用showModalDialog等待返回的结果,如果使用另外一个则不会等待结果直接向下运行,这样容易引起逻辑错误

 

二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
  在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的。

 

三、怎样才刷新showModalDialog和showModelessDialog里的内容?
  在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码:

 <body onkeydown="if (event.keyCode==116){reload.click()}">
 <a id="reload" href="filename.htm" style="display:none">reload...</a>

 将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要配合<base target="_self">使用,不然你按下F5会弹出新窗口的。

 

四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。
  <input type="button" value="关闭" onclick="window.close()">
  也要配合<base target="_self">,不然会打开一个新的IE窗口,然后再关掉的。

相关文章推荐

showModalDialog模态对话框的使用以及浏览器兼容

ModalDialog 是什么? showModalDialog 是js window对象的一个方法, 和window.open一样都是打开一个新的页面。 区别是: showModalDialog...
  • oscar999
  • oscar999
  • 2012年12月11日 09:28
  • 21148

Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题

What?模态对话框失效了?   上个礼拜修改测试一个后台管理项目,在测试与各个浏览器兼容性的时候,发现在chrome浏览器下showModalDialog方法显示的并不是模态对话框,就像新打开...

主题:使用selenium测试showModalDialog模态对话框

软件测试 Selenium目前没有提供对IE模态对话框(即通过showModalDialog方法打开的弹出对话框)的处理。原因在于,模态对话框会将父页面的JS挂起,直至对话框处理完毕才会继续...
  • aerchi
  • aerchi
  • 2012年10月23日 11:35
  • 8491

Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题

在chrome浏览器下showModalDialog方法显示的并不是模态对话框,就像新打开一个页面一样,父窗口仍然可以随意获取焦点,并可以打开多个窗体,而且返回值returnValue也无法返回,一直...
  • tegwy
  • tegwy
  • 2012年07月11日 11:28
  • 23921

JS对话框 JS模态对话框 showModalDialog用法详解

父窗口:     无标题页               function opendialog1()      {          var someValue=window.sh...

JS对话框 JS模态对话框 showModalDialog用法详解

父窗口: 无标题页 function opendialog1() { var someValue=window.showModalDialog("b.html","","dialo...

js模态对话框showModalDialog与非模态对话框showModelessDialog

在js中要用到弹出框是很常见的事,一般我们只是弹出个警告,提示,用alert就可以了; 如果涉及到输入值,可能要用到confirm,prompt。 但是这还不够,如果弹出的页面需要是一个定制的页面...

BX9036: Opera 和 Chrome 对模态对话框(showModalDialog)的支持有缺陷,且非 IE 浏览器均不支持非模态对话框(showModelessDialog)

BX9036: Opera 和 Chrome 对模态对话框(showModalDialog)的支持有缺陷,且非 IE 浏览器均不支持非模态对话框(showModelessDialog)标准参考模态对话...

模态对话框

  • 2012年05月31日 07:24
  • 8KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:showModalDialog 模态对话框
举报原因:
原因补充:

(最多只允许输入30个字)