MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

showModalDialog和window.open用法

Posted on 2008-01-25 11:29 leekiang 阅读(1011) 评论(0)  编辑  收藏 所属分类: web开发
1,vReturnValue = window.showModelDialog(sURL [, vArguments] [,sFeatures])
vArguments--
可选参数,用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
vArguments的类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象。如果为this或window,则传递的是父页面的引用
parent.htm
var obj = new Object();
obj.name
="51js";
window.showModalDialog(
"modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");

modal.htm
var obj = window.dialogArguments
alert(
"您传递的参数为:" + obj.name)


2,怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
  在被打开的网页里加上<base target="_self">
3,怎样才刷新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会弹出新窗口的。
在模态窗口的模态窗口中刷新父窗口,可用:
String js = "<script>"
                + "self.close();parent.window.dialogArguments.alert('成功!');"
                + "parent.window.dialogArguments.document.getElementById('reload').click();"
                + "</script>";
4、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。
  <input type="button" value="关闭" onclick="window.close()">
  也要配合<base target="_self">,不然会打开一个新的IE窗口,然后再关掉的。
5,window.open打开的窗口不产生滚动条,怎么办?
    修改body : <body scroll="yes">。 看起来是yes,以为就算没有超出范围也会有滚动条,而实际上IE会自动判断,只有超出才会有滚动条,实际效果应该是scroll=auto.为什么会这样?不深究了。

6,不能location.reload,而要用location.href=''

7,在模态对话框里显示滚动条
   在body里加style="overflow: auto;" scroll="yes"

只有注册用户登录后才能发表评论。


网站导航: