js和frame

来源:互联网 发布:php黑客技术 编辑:程序博客网 时间:2024/04/28 02:54

1.访问frame

//访问对象

window.document.getElementById(frameid).contentWindow.document.getElementById(elementid)

//访问函数

window.document.getElementById(frameid).contentWindow.fun()
window.document.frames[index].document.getElementById(elementid)
window.document.frames[framename].document.getElementById(elementid)


2.frame页面里访问父页面

parent到父框的window级别

parent.fun()

parent.a    //父框js定义的  var a  = “abc”

 

3.在子页面中,把父亲的路径调转了

parent.location.href="index.jsp";

 

 

-----------------

top:
该变更永远指分割窗口最高层次的浏览器窗口。如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。

parent:
该变量指的是包含当前分割窗口的父窗口。如果在一个窗口内有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第2层的分割窗口可以用parent变量引用包含它的父分割窗口。

opener:
指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。

 

附:Window对象、Parent对象、Frame对象、Document对象和Form对象的阶层关系:Windwo对象→Parent对象→Frame对象→Document对象→Form对象,

如下:parent.frame1.document.forms[0].elements[0].value;

 

 

问题:在一个页面嵌入框架<iframe>,然后在框架中使用jvascript脚本:parent.xx.value='xxxxx'; 在IE中可以正常看到赋值,但是在firefox中则不能完成赋值。请问在firefox中调用父框架的对象应该是哪个,是否和IE兼容?

解答:window.parent.document.form名.xx.value='xxxxx';   window可省略。

parent.document.form名.xx.value='xxxxx';   parent.document.getElementById("xx").value='xxxxx'; 

 

 

window.parent与window.opener的区别 javascript调用主窗口方法

1:   window.parent 是iframe页面调用父页面对象
举例:      a.html

<html>

<head><title>父页面</title></head>

<body>

<form name="form1" id="form1">

<input type="text" name="username" id="username"/>

</form>

<iframe src="b.html" width=100%></iframe>

</body>

</html>

如果我们需要在b.htm中要对a.htm中的username文本框赋值(就如很多上传功能,上传功能页在Ifrmae中,上传成功后把上传后的路径放入父页面的文本框中),我们应该在b.html中写:

<script type="text/javascript">

var _parentWin = window.parent ;

_parentWin.form1.username.value = "xxxx";

</script>

2:   window.opener 是window.open 打开的子页面调用父页面对象
opener:对打开当前窗口的window对象的引用,如果当前窗口被用户打开,则它的值为null。

self:自引用属性,是对当前window对象的应用,与window属性同义。

self代表自身窗口,opener代表打开自身的那个窗口,比如窗口A打开窗口B。如果靠window.open方法,则对于窗口B,self代表B自己,而opener代表窗口A。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jamestaosh/archive/2009/06/20/4284960.aspx