Window对象
- parent 是父窗口
- window.frames 返回窗口中所有命名的框架
- opener是用open方法打开当前窗口的那个窗口
在页面内嵌入一个iframe,在iframe中提供一个输入项id为username,输入后,在iframe外面窗口id为myDiv的div标签中显示内容
//子窗口-父窗口传值
function changeParent(){
//1.0获取输入框的值
var uvalue = document.getElementById("username").value;
//2.0 获取父窗口的标签并赋值(parent是父窗口 )
window.parent.document.getElementById("myDiv").innerHTML=uvalue;
}
在页面内嵌入一个iframe,在iframe中提供一个输入项id为username,输入后,在iframe外面窗口id为myDiv的div标签中显示内容
//父窗口-子窗口传值
function parentValueToChild(){
//1.0获取标签的值
var myNames = document.getElementById("myName").value;
//2.0获取到子窗口的标签并赋值(window.frames 返回窗口中所有命名的框架)
var subFrame = window.frames[0];//关键
subFrame.document.getElementById("username").value=myNames;
}
Js window.showModalDialog()方的使用简介
a.url: 弹出窗口指向哪一个页面
b.varArgIn: 向弹出页面传递的参数
写法如下:
window.showModalDialog("openner3.htm",tableObj);
在父页面中,如何制定所需传递的常数
在Js中,定义一个类是很简单的(类的写法,不过感觉像是个HashMap),定义方法如下
//定义一个超级对象
var tableObj = new Object();
//下面的写法就是自定义属性了,"tableObj."后面的属性名可以随便写,感觉有点像key值
//"="后面的是属性值,也是什么都行,感觉有点像value值
tableObj.table = window.document.getElementById("myTable");
tableObj.userName = window.document.getElementById("txtUserName").value;
//模拟调用一下
var tempObj = tableObj;
//在这里,"."后的属性名与之前对象定义的属性名一直就Ok了,感觉像通过key值取value值
//"tempObj.table.tagName"之所以这样写是因为"tempObj.table"是指向了id为"myTable"的一个Table对象,所以可以调用这个对象的"tagName"属性来查看其是什么元素
alert(tempObj.table.tagName);
alert(tempObj.userName);
在子页面中如何接收来自父页面的参数
调用下面的方法即可:
var comeFromFatherPageObj = window.dialogArguments;
子页面向父页面传递返回值(当子页面即将关闭时)
写法如下:
//首先在父页面调用window.showModalDialog()方法的时候做些操作,如下:
objReturnValue = window.showModalDialog("openner3.htm",tableObj);
//然后再子页面,即将关闭的时候加一句话,如下:
window.returnValue = "asdad";//可以是任何东西
window.close();