javascript獲取iframe框架中,加載的頁面document對象javascript
由於瀏覽器安全限制,對跨域訪問的頁面,其document對象沒法讀取、設置屬性html
function getDocument(iframe)
{
var Doc;
try{
Doc = iframe.contentWindow.document;// For IE5.5 and IE6
}
catch(ex){}
if(!Doc)
{
Doc = iframe.contentDocument;// For NS6
}
return Doc;
}java
用iframe嵌套頁面是,若是父頁面要獲取子頁面裏面的內容,可使用contentWindow或者contentDocument,其區別以下:跨域
a>contentWindow 這是個只讀屬性,返回指定的iframe的窗口對象。它雖然不是標準的一部分,但各個主流瀏覽器都支持。瀏覽器
b>contentDocument Firefox 支持,IE6,IE7都不支持,IE8開始支持,須要如此訪問 document.frames['J_mainframe'].document。安全
兼容獲取document對象:服務器
var getIFrameDoc = function(){ var iobj = document.createElement("iframe"); document.getElementsByTagName("body")[0].appendChild(iobj); return iobj.contentDocument || iobj.contentWindow.document; }
時間:2014-07-25 13:53:21 閱讀:4639 評論:0 收藏:0 [點我收藏+]app
標籤:style blog http color 使用 strong io width框架
1.以前又說到「根據內容計算iframe的高度」dom
2.如今想說的是,通常iframe頁面都是嵌套在父頁面當中,因此在通常在iframe裏面作相關動做時默認都是iframe頁面的,不會影響到父頁面。所以如果須要在iframe的子頁面裏面操做父頁面的元素,咱們會如何作?
iframe 子頁面操做父頁面元素須要知道的兩點是:
(1)iframe 子頁面和父頁面必須屬於同一個域下。(這個問題,通常在本地頁面來作到,是不太可能的,常常會有這個錯誤出現 「Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.」,故而通常的解決方案是放在服務器上去訪問。 )
(2)iframe 頁面獲取父頁面的對象方法是 parent。
例如:iframe 子頁面獲取父頁面的id爲mask的對象:$("#mask",parent.document)
$("#mask",parent.document).html() --------- id=mask的html內容
同理能夠找到其餘類型的對象
其次,就是父頁面獲取iframe子頁面中的對象:$(window.frames["framename"].document).find("#id")
例如:$(window.frames["mainframe"].document).find("#mask2"); 中括號中的是iframe的名字,find後面則是對象的id。
詳見連接:http://blog.csdn.net/zalion/article/details/5894103
3.使用iframe時,如何正確使用,通常使用iframe時,也是會有須要經過a標籤切換的
例如:
<ul class="nav nav-list"> <li class="active parent_li"><a href="BSwelcome.aspx" target="mainframe"></li> <li class="parent_li"><a href="MyContacts/MyInfoAssitant/BSMyInfoList.aspx?jb_id=&grade=all&&paixu=no®s=dd&cup=1" target="mainframe"></a></li> <li class="parent_li"><a href="MyContacts/MyOrder/BSMyOrderList.aspx?cup=1&&sel=no" target="mainframe"></a></li> <li class="parent_li"><a href="MyContacts/SubmitOrder/BSSubmitOrderList.aspx?cup=1" target="mainframe"></a></li> </ul>
<iframe id="ifrma1" src="BSwelcome.aspx" name="mainframe" frameborder="no" scrolling="yes" style="width: 100%; height: 100%;"></iframe>
通常iframe要有id值,name值,而a標籤連接了地址,還要多一句 target="mainframe" 而mainframe就是iframe的name值。纔不至於點擊a標籤直接跳過去。