之前還真沒做過類似的東西,,top頁面獲取子頁面的document。。
在百度搜了下即找到這個東東,還好,能用。
主要就是使用 contentWindow方法,獲取子頁面的所有document,再做處理。
通過js從父頁面獲取子頁面的值
通常在很多情況下都會遇到通過js來傳值的問題,只要通過一些頁面關聯,他們的值就可以互相傳遞,其中應用框架的時候傳值問題可能會遇到更多一些
1、從父頁面傳值到子頁面可能很容易辦到,在很多情況下可以不通過js來傳就可以達到目的,但從子頁面把數據傳給父頁面就不是那么容易了,其實思路很簡單,首先你要通過父頁面找到子頁面,按照W3C標准來,語法如下:
document.getElementById('iframe1').contentWindow;
取到子頁面對象
2、此文為了達到一個很醒目的效果,做了一個很即時的例子,當鼠標選中子頁面的任何文字的時候,父頁面的text里面就把顯示出來,通過 getSelection和selection.createRange方法來實現,關於selection.createRange是只能在ie6上面 能用,所以要加。
具體代碼如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>無標題文檔</title> </head> <body> <input type="text" id="text1"> <iframe src="http://blog.snsgou.com/blog/download/demo1.html" id="iframe1" name="iframe1" style="width:60%; height:60%;"> </iframe> </body> </html> <script language="JavaScript"> var childHtml = document.getElementById("iframe1").contentWindow; var parentText = document.getElementById("text1"); if (childHtml.document.selection) { childHtml.document.onmouseup = function() { parentText.value = childHtml.document.selection.createRange().text; } } else { childHtml.onmouseup = function() { parentText.value = childHtml.window.getSelection(); } } </script>
附加說明:
子頁面訪問父頁面:通過關鍵字 parent 獲取父頁面對象
parent.document.getElementById('***')......