本文章來跟大家介紹js判斷iframe中元素是否存在程式碼,有需要了解的朋友可進入參考。
一、純原生態js實作方法,程式碼如下:
<script> var bb = document.getElementById('PreviewArea').contentWindow.document.getElementById('aPic'); if( bb ) { } else { } //apic为子页面Preview.aspx里面元素的Id </script> <body> <iframe name="PreviewArea" id="PreviewArea" scrolling="yes" width="100%" height="290" frameborder="1" src="Preview.aspx"></iframe> </body>
二、現在流行的jquery實作方法,程式碼如下:
if($(window.frames["iframepage"].document).find('.l-grid-row-cell').length > 0){ alert(1); }else{ alert(2); }
以上程式碼,判斷為iframepage的iframe中為1 grid-row-cell的元素是否存在。
附
Jquery取得iframe中元素的幾種方法
在iframe子頁面獲取父頁面元素
$('#objId', parent.document); // 搞定... 在父页面 获取iframe子页面的元素 $("#objid",document.frames('iframename').document) $(document.getElementById('iframeId').contentWindow.document.body).html()
顯示iframe中body元素的內容
$("#testId", document.frames("iframename").document).html(); 根据iframename取得其中ID为"testId"元素 $(window.frames["iframeName"].document).find("#testId").html()
2、用JS或jQuery訪問頁面內的iframe,相容IE/FF
注意:框架內的頁面是不能跨域的!
假設有兩個頁,在相同域下.
index.html 文件內含有一個iframe:
<!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 內容:
<!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.php.cn</div> </body> </html>
1. 在index.html執行JS直接存取:
document.getElementById('koyoz').contentWindow.document.getElementById('test').style.color='red'
透過在index.html存取ID名為'koyoz'的iframe頁面,並取得此iframe頁面內的ID為'test'的物件,並將其顏色設定為紅色.
此程式碼已經測試通過,能支援IE /firefox。
2. 在index.html裡面藉助jQuery訪問:
另外,有網友提供瞭如下的示例:
用jQuery在IFRAME裡取得父窗口的某個元素的值,只好用DOM方法與jquery方法結合的方式。
$(window.frames["iframe1"].document).find("input:radio").attr("checked","document).find("input:radio").attr("checked","true ");
2. 在IFRAME中操作選取父視窗中的所有單選鈕
$(window.parent.document).find("input:radio").attr("checked","true");
父視窗想得到IFrame中的Iframe,就再加一個frames子級就行了,如:
$(window.frames["iframe1"].frames["iframe2"].document).find("input: radio").attr("checked","true")