用JS或jQuery訪問頁面內的iframe,兼容IE/FF
js或者jQuery訪問頁面中的框架也就是iframe.
注意:框架內的頁面是不能跨域的!
假設有兩個頁面,在相同域下.
index.html 文件內含有一個iframe:
XML/HTML代碼
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>頁面首頁</title>
- </head>
- <body>
- <iframe src="iframe.html" id="koyoz" height="0" width="0"></iframe>
- </body>
- </html>
iframe.html 內容:
XML/HTML代碼
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>iframe.html</title>
- </head>
- <body>
- <div id="test">www.koyoz.com</div>
- </body>
- </html>
1. 在index.html執行JS直接訪問:
JavaScript代碼
- document.getElementById('koyoz').contentWindow.document.getElementById('test').style.color='red'
通過在index.html訪問ID名為'koyoz'的iframe頁面,并取得此iframe頁面內的ID為'test'的對象,并將其顏色設置為紅色.
此代碼已經測試通過,能支持IE/firefox .
2. 在index.html里面借助jQuery訪問:
JavaScript代碼
- $("#koyoz").contents().find("#test").css('color','red');
此代碼的效果和JS直接訪問是一樣的,由于借助于jQuery框架,代碼就更短了.
補充一下:
用DOM方法與jquery方法結合的方式實現了
1.在父窗口中操作 選中IFRAME中的所有單選鈕
$(window.frames["iframe1"].document).find("input[@type='radio']").attr("checked","true");
2.在IFRAME中操作 選中父窗口中的所有單選鈕
$(window.parent.document).find("input[@type='radio']").attr("checked","true");
iframe框架的:<iframe src="test.html" id="iframe1" width="700" height="300" frameborder="0" scrolling="auto"></iframe>
IE7中測試通過