举例说明:
有两个页面,A、B。其中B是A中通过iframe的方式引入的嵌入页面。
A页面的地址是:http://www.myexample.com/a.html
B页面的地址是:http://www.myexample.com/b.html
假设页面中只有一个iframe。
那么在A中执行document.getElementsByTagName('iframe')[0].contentWindow就可以取得B中的window对象。既然获得了B的window对象,那A触发一个按钮也就自然能够调用B中的一个函数并在B中执行显示。
另:如果A、B的主域名相同
距离说明:
有两个页面,A、B。其中B是A中通过iframe的方式引入的嵌入页面。
A页面的地址是:http://www.myexample.com/a.html
B页面的地址是:http://bbs.myexample.com/b.html
那么,在A、B中都设置document.domain = 'myexample.com'即可
其余情况同A、B是相同域名的情况
<div id="aaaa" style="display: none">abcdefg</div><input type="button" value="new Window" onclick="javascript: newWnd()" />
<script type="text/javascript">
function newWnd() {
var hWnd = window.open()
hWnd.document.write("<input type=\"button\" value=\"Click me\" onclick=\"javascript: window.opener.document.getElementById('aaaa').style.display = 'block'\" />")
hWnd.document.close()
}
</script>
没有name,用标签window.opener.document.getElementsByTagName("input")[0].click()
注意标签获取的是对象的一个数组,[0]是第一个input标签
如果不能确定是第几个,还可以判断
var s = window.opener.document.getElementsByTagName("input")[0]
if ( s.value=='refresh' ){
//do something
}
你的click()事件写的莫名其妙,click并不是getElementsByTagName的属性或方法,当然不能生效
click()事件需要触发,然后回调函数执行相关操作
如
var s = window.opener.document.getElementsByTagName
if ( s.value=='refresh' ){
_doClick('482574EB0030EB86.62dd28fbaafdc672482576960026f3ec/$Body/0.6390', s, null)
}