之前還真沒做過類似的東西,,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('***')......
