jquery iframe取得元素與自適應高度

來源:互聯網
上載者:User

標籤:高度自適應   style   http   color   os   檔案   io   cti   

總結一下iframe在jquery中怎麼操作的,下面我來給各位介紹jquery 擷取iframe子/父頁面的元素及iframe在jquery高度自適應實現方法,各位朋友可參考。

jquery方法:

在iframe子頁面擷取父頁面元素

$(‘#objId‘, parent.document); 

 

在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()

 
在父視窗中操作 選中IFRAME中的所有輸入框:

 代碼如下 複製代碼

 $(window.frames["iframeSon"].document).find(":text");

在IFRAME中操作 選中父視窗中的所有輸入框:

 代碼如下 複製代碼

$(window.parent.document).find(":text");

iframe架構的HTML:

 代碼如下 複製代碼


<iframe src="test.html" id="iframeSon" width="700″ height="300″ frameborder="0″ scrolling="auto"></iframe>

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>


假設有兩個頁面,在相同域下.

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.</div>  
</body>  
</html> 

iframe自適

應高度

代碼很簡單:

 代碼如下 複製代碼

$("#iPersonalInfo").load(function() {

$(this).height($(this).contents().height());

})

有一點需要注意的,我也在調試的時候才發現的,耽誤了不少時間。就是綁定事件必須在iframe載入完畢之前綁定,否則不會執行。 
以下是jQuery,load事件的概述 
在每一個匹配元素的load事件中綁定一個處理函數。 
如果綁定給window對象,則會在所有內容載入後觸發,包括視窗,架構,對象和映像。如果綁定在元素上,則當元素的內容載入完畢後觸發。 
注意:只有當在這個元素完全載入完之前綁定load的處理函數,才會在他載入完後觸發。如果之後再綁定就永遠不會觸發了。所以不要在$(document).ready()裡綁定load事件,因為jQuery會在所有DOM載入完成後再綁定load事件。

iframe代碼,注意要寫ID

 代碼如下 複製代碼


<iframe src="test.html" id="main" width="700" height="300" frameborder="0" scrolling="auto"></iframe>

jquery代碼1:

 代碼如下 複製代碼

//注意:下面的代碼是放在test.html調用
$(window.parent.document).find("#main").load(function(){
var main = $(window.parent.document).find("#main");
var thisheight = $(document).height()+30;
main.height(thisheight);
});


jquery代碼2:

 代碼如下 複製代碼

//注意:下面的代碼是放在和iframe同一個頁面調用
$("#main").load(function(){
var mainheight = $(this).contents().find("body").height()+30;
$(this).height(mainheight);
});


jqueryiframe取得

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.