父窗口iframe元素触发器通过简单的JavaScript单击

时间:2014-10-10 11:20:20

标签: javascript iframe

需要在父窗口的iframe元素中通过简单的javascript触发click事件。

父窗口

<html>
    <head>
    <meta http-equiv="Content-Language" content="en" />
    <title>Main window</title>
    </head>
    <body>
        <iframe scrolling="auto" src="html_test.php"></iframe>
        <button onclick='window.open("child.html")'>Open window</button>
    </body>
</html>

子窗口

<script type="text/javascript">
    window.opener.document.getElementsByTagName('iframe')[0].document.getElementById('main_tab').click();
</script>

但onload子窗口出现此javascript错误:

TypeError: window.opener.document.getElementsByTagName('iframe')[0].document is undefined

并且在文件html_test.php中,div元素main_tab在那里是alredy。

html_test.php html是:

<html>
    <head>
    <title>test iframe</title>
    </head>
    <body>
        <ul>
            <li id="main_tab" onclick="alert('test click')"></li>
        </ul>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

您的辅助页面(加载到iframe)有问题。它至少需要<meta charset="UTF-8" />,顶部可能需要DOCTYPE声明。此外,在我的代码试验中(在FireFox中)我遇到window.opener时出现问题,需要使用window.parent。您肯定需要使用contentDocument而不是document。对我来说,在做出这些改变后,错误就消失了。

答案 1 :(得分:0)

您在iframe页面中的开启窗口ID,所以只需执行此代码

即可
window.opener.document.getElementById('main_tab').click();