一直以来不太理解,如果如何在其他页面中访问某一页面中的js方法或变量以及节点标签,
今天分析了一下明白了他的原理:
在web中window代表浏览器打开的窗口,而document对象是当html页面加载到浏览器的时候生成的一个对象,是用来操作html页面中所有的节点元素的
这样就很明显了,在html中写的js代码当然是window对象的了,因为window对象就代表了当前开打的窗口(包括js,html内容),而document只是用于进行操作html中的节点的
所以如果想要访问html页面中的js代码就得通过window对象了,要想访问访问html页面中的某一个节点当然就得通过document了。
ex:
A页面:(里面包含了一个嵌套的iframe)
<html>
<script>
var a;
</script>
<a id="ahref"></a>
<iframe id="biframe">
B页面:
<html>
<script>
var b;</script>
</html>
</iframe>
<html>
B页面访问A页面中的a标签:
top.document
.getElementById("biframe")
B页面访问A页面中的js变量a:top.a(top就代表了A页面的window对象)
A页面访问B页面中的js变量b:document.getElementById("biframe").contentWindow.b,其中document.getElementById("biframe")是为了获取B页面所在的iframe节点,document.getElementById("biframe").contentWindow是为了获取在iframe对象中B页面的window对象
ps:A页面和B页面的关系是层级关系,也就是A页面是包含B页面的,这里要区分使用open方法打开的页面(如果B页面是A页面open打开的窗口,那么B页面要通过opener来获取A页面的window对象)