每一个WINDOW对象,不论他是常规HTML页面。框架集页面。子框架还是孙子框架,都具有一个TOP属性。这个属性返回对载入浏览器得最顶层WINDOE对象得引用;
如果WINDOW对象是常规HTML页面,TOP就是SELF
。。。。。。。。。。。顶层框架及页面, 。。。。。。。。
。。。。。。。。。。。子框架,TOP指向框架得父亲,也就是说,下面两个表达式是等效的;
SELF.TOP
SELF.PARENT
。如果WINDOW对象是子框架,TOP指向框架得祖父。也就是说下面两个表达式是等效得
self.top
self.parent.parent
这可能提醒了你一个减少按键得好方法,尤其是当你认为能为能仅适用TOP本身是(那就是说,使用TOP本身来代替SELF.TOP或者WINDOW.TOP),这虽是可行的,但是应该特别注意:必须确保TOP真正指向你的顶层框架
2、jsp和javaccript传参数用document.location.href
在JSP页面中传递参数:document.OrderProcessing_OrderDetailList.document.location.href="/iHIS/protekted/ihis/om/orderentry/OrderProcessing_OrderDetailList.jsp?ddFormNo="+document.all.ddFormNo.value+"&showCurrentFormNo="+document.all.showCurrentFormNo.value;
top.location.href 最上层的地址
windows.location.href自己的地址
另一个跟框架有关的问题:
一个在框架中的页面重定向到另一个页面的时候。这个页面会在框架中。但有些页面是始终都应该在框架外的。比如说网站的首页。这时只要在网站的首页的<head></head>之间加上下面这段脚本首页就不会再出现在框架里了。
<script>
if(window.parent[0] != null)
{
if(top.location.href != window.location.href)
{
top.location.href = window.location.href;
}
</script>
<script type="text/javascript">
window.οnlοad=function(){
//当页面超时,并且页面位于子frame或者iframe中
if(top!=self){
top.document.location.href = document.location.href;
return;
}
//当页面超时,并且页面是通过showModalDialog方式弹出时
if(typeof(window.dialogTop)!="undefined"){
var logoutObj = new Array();
logoutObj[0] = "__logout__";
logoutObj[1] = document.location.href;
window.returnValue = logoutObj;
window.close();
return;
}
document.getElementById("opercode").focus();
document.getElementById("opercode").οnfοcus=
document.getElementById("passwd").οnfοcus=function(evt){
this.style.backgroundColor="#fffa66";//#ffee33
};
document.getElementById("opercode").οnblur=
document.getElementById("passwd").οnblur=function(evt){
this.style.backgroundColor="#ffffff";
};
try{
window.opener.opener=null;
window.opener.close();
}catch(e){}
}
</script>
3、ShowModalDialog函数、改变模态窗口大小
ShowModalDialog函数的功能:
打开一个子窗口,并且可与父窗口相互传递数据,它与window.open的最大区别就在于由ShowModalDialog打开子窗口后,父窗口将不能操作。
使用方法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogWidth: 对话框宽度。
dialogLeft: 距离桌面左的距离。
dialogTop: 离桌面上的距离。
center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[Modeless]或no
参数传递方法:
父窗口向子窗口传递参数采用ShowModalDialog的第2个参数即可,父窗口要获取子窗口传回的参数则可通过ShowModalDialog函数的返回值获取。
子窗口获取父窗口参数的方法为采用子窗口window对象dialogArguments属性获取,例如:
var a=window.dialogArguments;
子窗口向父窗口返回参数采用window.returnValue属性,如:
window.close();
接下来,就是取得父窗口的一些数据和方法,这是经常会用的
//取得父窗口的JS变量 var
window.dialogArguments.var;
//获得父窗口的对象和属性
window.dialogArguments.form1.name.value ;
//调用父窗口的方法 fun
window.dialogArguments.fun() ;
改变模态窗口大小
1.html
<HTML>
<HEAD>
<TITLE>改变对话框的大小</TITLE>
</HEAD>
<script>
function showdialog(){
window.showModalDialog("2.html","",'edge: Raised; center: Yes;help: Yes; resizable: Yes; status:No;dialogHeight:200px;dialogWidth:300px');
}
</script>
<BODY>
<input type=button value="showdialog"οnclick="showdialog();">
</BODY>
</HTML>
2.<HTML>
<HEAD>
<TITLE>改变对话框的大小</TITLE>
</HEAD>
<BODYοnlοad=Resize_dialog(1000,1000,1000,1000)>
<SCRIPT LANGUAGE="JavaScript">
function Resize_dialog(t,l,w,h) {
window.dialogTop = t+"px";
window.dialogLeft = l+"px";
window.dialogHeight = h+"px";
window.dialogWidth = w+"px";
}
</SCRIPT>
</BODY>
</HTML>
dialogTop: iYPos 设置对话框窗口相对于桌面左上角的top位置