最近因項目需求,需要在JS代碼中實現IFrame內外頁面的互訪問。經過一番試驗終于找到方法,以下是試驗時用的代碼(在IE,Firefox中可正常運行):
main.html
?1?<html>
?2?<head>
?3?????<title>MAIN</title>
?4?????<script?type="text/javascript">
?5???????? //?主頁面訪問IFrame頁面DOM內容
?6?????????function?oinit()?{
?7?????????????alert(getIFrameDoc("iframe1").getElementById("idiv").id);
?8?????????}
?9?????????function?getIFrameDoc(id)?{
10?????????????var?iframe?=?document.getElementById(id);
11?????????????var?doc?=?(iframe.contentWindow?||?iframe.contentDocument);
12?????????????if?(doc.document)?{
13?????????????????doc?=?doc.document;
14?????????????}
15?????????????return?doc;
16?????????}
17?????</script>
18?</head>
19?<body?onload="oinit()">
20?????<div?id="odiv">
21?????????<iframe?id="iframe1"?src="iframe.html"></iframe>
22?????</div>
23?</body>
24?</html>
iframe.html
?1?<html>
?2?<head>
?3?????<title>IFRAME</title>
?4?????<script?type="text/javascript">
?5???????? //?IFrame頁面訪問外層頁面DOM內容
?6?????????function?iinit()?{
?7?????????????alert(window.parent.document.getElementById("odiv").id);
?8?????????}
?9?????</script>
10?</head>
11?<body?onload="iinit()">
12?????<div?id="idiv">
13?</body>
14?</html>