window.showModalDialog不关闭传值问题!

zhucemajiaburongyi 2010-07-28 06:11:07
parent.htm


<script>
function dddd()
{
var str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
alert(str);
}

</script>

modal.htm

function sss()
{
window.returnValue="http://www.51js.com";
window.close();
}

我百度和Google很多 而且自己也是这种情况
必须有window.close();子窗体才能赋值到父窗体


但是我看了几个在线OA的演示 他们不执行关闭子窗体也能传值!!!!

为什么啊?高手帮帮忙啊!!
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GlyphVectory 2010-07-28
  • 打赏
  • 举报
回复
学习了。(当我没有说:symbol_bc)
GlyphVectory 2010-07-28
  • 打赏
  • 举报
回复
关于模式窗口、非模式窗口、alter、confirm、file、pro..这类就是阻塞js。
片面的理解就是js整个线程的阻塞,比如说lz想一想为什么我们做下载数据(本地下载)为什么页面不刷新了?
它的确是去服务器交互来了呀?
symbol_bc 2010-07-28
  • 打赏
  • 举报
回复
当然可以,真不知道大家为什么说不行,以dom对象为例,把它当做参数传到模式页面中就ok了!!测试代码如下:

//主页面a.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script type="text/javascript">

var f = function(){
var obj = document.getElementById("content");
var str =window.showModalDialog("testiframe.htm",obj,"dialogWidth=300px;dialogHeight=200px");

}
</script>
</head>
<body>

<input type="button" value="call f" onclick="f();" />
<input id="content" />
</body>
</html>



//模式页面testiframe.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
<script type="text/javascript">

var cobj = window.dialogArguments;
var f = function(){
cobj.value = "sdfsdfsfsfsdf";
}

</script>
</head>
<body>
<input type="button" value="click me" onclick="f();" />
</body>
</html>



测试过程就是先单击主页面上的button打开模式页面,在单击模式页面上的button,
会看到虽然模式页面没有关闭,但是仍然能够改变主页面值。
wuyq11 2010-07-28
  • 打赏
  • 举报
回复
showModalDialog子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口
window.open,window.opener.document.getElementById("txt").value="";
wwfgu00ing 2010-07-28
  • 打赏
  • 举报
回复
<script>
function dddd()
{
window.open("modal.htm",,"dialogWidth=200px;dialogHeight=100px");

}

</script>

mzjmicrosoft 2010-07-28
  • 打赏
  • 举报
回复
showModalDialog是阻塞方法 别想了

换open试试

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧