星宿.net

星星的随笔

博客园 首页 新随笔 联系 订阅 管理
最近做项目用到了javascript的ModalDialog,但是发现在ModalDialog中用javascript就不是很方便了.在写一个超链接调用javascript脚本的时候就会弹出另外一个窗口来写.怎样才能控制ModalDialog的内容呢,郁闷了好久.毕竟我想在输入一些内容以后点关闭ModalDialog,然后刷新父页面或者执行别的操作.原来通过一个变通的方法可以达到,就是使用<iframe>
父页面来打开一个ModalDialog页面:
<!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 language="javascript">
    
function myOpen()
    
{
        
var returnstr;
        returnstr 
= window.showModalDialog('NoName2.html','',"dialogHeight: 500px; dialogWidth: 750px;center: yes; help: no;resizable: no; status: no;");
        
//window.open('NoName2.html','',"dialogHeight: 500px; dialogWidth: 750px;center: yes; help: no;resizable: no; status: no;");        
        if(returnstr == 1)
        
{
            document.getElementById(
"div1").innerText = "获得参数";
        }

    }

</script>

</head>

<body>
<href="javascript:myOpen()">11111111111</a>
<div id="div1">div1</div>
</body>
</html>

NoName2.html用一个<iframe>嵌套另外一个页面,来实现调用脚本及其他等操作.
<!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>Modaldialog Page</title>

</head>

<body>
    
<iframe src="noname3.html"  width="100%" height="100%"></iframe>
</body>
</html>

NoName3.html用来被NoName2.html调用
<!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>src Page</title>
    
<script language="javascript" type="text/jscript">
        
function winclose()
        
{
            window.parent.returnValue 
= 1;
            window.parent.close();
        }

    
</script>
</head>
<body>
<href="javascript:window.parent.returnValue = 1;window.parent.close();" >aaaaaaaaaaa</a>
<href="javascript:winclose();">bbbbbbbbbbbbbbbbbbb</a>
</body>
</html>

 

因为NoName3.html是被NoName2.html调用,所以可以设置ModalDialog的returnvalue,但是需要通过window.parent.returnValue进行赋值。在打开ModalDialog页面可以得到returnValue,我在第一个页面把returnValue赋值给了Div,能够看到效果,在实际操作的时候可以通过把原页面根据returnValue状态对页面进行重新加载等.

posted on 2006-09-05 22:14  星宿.NET  阅读(4231)  评论(2编辑  收藏  举报