js中top、self、parent
1.在应⽤iframe或者frameset的时候
  parent指的是⽗窗⼝。top指的是顶级的窗⼝。self指的是当前的窗⼝-window
window.self
功能:是对当前窗⼝⾃⾝的引⽤。它和window属性是等价的。
语法:window.self
注:window、self、window.self是等价的。
功能:返回顶层窗⼝,即浏览器窗⼝。
语法:p
注:如果窗⼝本⾝就是顶层窗⼝,top属性返回的是对⾃⾝的引⽤。
window.parent
功能:返回⽗窗⼝。
语法:window.parent
注:如果窗⼝本⾝是顶层窗⼝,parent属性返回的是对⾃⾝的引⽤。
在框架⽹页中,⼀般⽗窗⼝就是顶层窗⼝,但如果框架中还有框架,⽗窗⼝和顶层窗⼝就不⼀定相同了。
判断当前窗⼝是否在⼀个框架中:
<script type="text/javascript">
var b = p!=window.self;
document.write( "当前窗⼝是否在⼀个框架中:"+b );
</script>
你应当将框架视为窗⼝中的不同区域,框架是浏览器窗⼝中特定的部分。⼀个浏览器窗⼝可以根据你的需要分成任意多的框架,⼀个单个的框架也可以分成其它多个框架,即所谓的嵌套框架。
2.在同⼀个页⾯中,使⽤js获取另⼀个iframe中的dom元素
parent.html
<iframe id="myframe" name="myframe" src="localhost:888/child.html" frameborder="3" >
</iframe>
<iframe id="myframe0" src="localhost:888/child0.html" frameborder="3" name="if2">
</iframe>
<script>
function init() {
var obj1 = ElementById("myframe");
html frameconsole.log(obj1.src);
//alert(obj1.form.username.value);//错误
var obj2 = document.frames("myframe"); //获取报错
console.log(obj2.form.username.value);
//alert(obj2.src);//错误
}
init()
</script>
child0.html
child0
<div id="child0">123</div>
child.html
<form name="myform">
⽤户名:
<input type="text" name="username" value="test" />
</form>
<script>
console.log(parent.frames['if2'].ElementById("child0"))        var b = p != window.self;
document.write("当前窗⼝是否在⼀个框架中:" + b);
</script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。