子页面的js怎么由父页面控制,并在子页面执行?

JavaScript011

子页面的js怎么由父页面控制,并在子页面执行?,第1张

当然可以,但是有一个前提条件,那就是a.html,b.html所在的域名必须相同。

举例说明:

有两个页面,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)

}