2014-10-10 70 views
0

需要通過父窗口的iframe元素中的簡單JavaScript觸發點擊事件。父窗口iframe元素觸發器通過簡單JavaScript點擊

父窗口

<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在那裏有效。

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> 
+0

window.opener.document.getElementsByTagName(...)[0] .'contentDocument' – 2014-10-10 11:23:56

+0

thnks @gp我得到這個錯誤:::: TypeError:window.opener.document.getElementsByTagName('iframe')[0] .document is undefined' – 2014-10-10 11:26:58

+0

文檔對iframe元素無效。改用contentDocument。 – 2014-10-10 11:29:42

回答

0

你的首戰窗口形式ifream頁,所以簡單的做到這些代碼

window.opener.document.getElementById('main_tab').click(); 
+0

是的,完成!!!!!!謝謝 !!! :) – 2014-10-15 05:41:27

0

你的二級頁面(即加載到iframe)是錯誤的。它至少需要一個<meta charset="UTF-8" />,並且可能需要頂部的DOCTYPE聲明。另外,在我的代碼實驗中(在FireFox中),我遇到了window.opener問題,需要使用window.parent代替。您一定需要使用contentDocument而不是document。對我而言,在進行這些更改後,錯誤消失了。

相關問題