西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開(kāi)發(fā)javascript|JQuery → jquery中對(duì) iframe的操作

jquery中對(duì) iframe的操作

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2011/9/21 14:35:48字體大。A-A+

作者:佚名點(diǎn)擊:6224次評(píng)論:11次標(biāo)簽: jquery

  • 類型:編程輔助大。109KB語(yǔ)言:中文 評(píng)分:5.0
  • 標(biāo)簽:
立即下載

 使用jquery操作iframe

我們先看一下 JQUERY中的對(duì)像 contents() 的幫助文件

contents()
概述
查找匹配元素內(nèi)部所有的子節(jié)點(diǎn)(包括文本節(jié)點(diǎn))。如果元素是一個(gè)iframe,則查找文檔內(nèi)容


示例
描述:
查找所有文本節(jié)點(diǎn)并加粗

HTML 代碼:

Hello John, how are you doing?

jQuery 代碼:
$("p").contents().not("[nodeType=1]").wrap("");結(jié)果:

Hello John, how are you doing?

描述:
往一個(gè)空框架中加些內(nèi)容

HTML 代碼:
jQuery 代碼:
$("iframe").contents().find("body")
.append("I'm in an iframe!");

 

去掉iframe 的邊界 frameborder="0"

1 內(nèi)容里有兩個(gè)ifame

<iframe id="leftiframe"...
<iframe id="mainiframe..

leftiframe中jQuery改變mainiframe的src代碼:
$("#mainframe",parent.document.body).attr("src","http://www.baidu.com")

2 如果內(nèi)容里面有一個(gè)ID為mainiframe的ifame

you want to get this content


得到someID的內(nèi)容


$("#mainiframe").contents().find("someID").html()html 或者 $("#mainiframe").contains().find("someID").text()值

2 如上面所示
leftiframe中的jQuery操作mainiframe的內(nèi)容someID的內(nèi)容
$("#mainframe",parent.document.body).contents().find("someID").html()或者 $("#mainframe",parent.document.body).contents().find("someID").val()

Jquery獲取到 iframe 所屬的父窗口的里面的id為xuan的 標(biāo)簽的

$(window.parent.document).find("#xuan").html(x);//

//js創(chuàng)建 元素 并追加到 父元素的 Iframe中的 元素中的dom操作問(wèn)題:

詳見(jiàn)鏈接:http://www.cssrain.cn/?p=1376

iframe中直接調(diào)用父窗口中的方法:假設(shè)父窗口有個(gè)add的方法

self.parent.add();

===============================================================

IE和Firefox對(duì)iframe document對(duì)象的差異性

在IE6、IE7中,我們可以使用document.frames[ID].document來(lái)訪問(wèn)iframe子窗口中的document對(duì)象,可是這是不符合W3C標(biāo)準(zhǔn)的寫(xiě)法,也是IE下獨(dú)有的方法,在Firefox下卻不可以使用,F(xiàn)irefox下使用的是符合W3C標(biāo)準(zhǔn)的document.getElementById(ID).contentDocument方法,今天我在寫(xiě)實(shí)例的時(shí)候,通過(guò)IE8進(jìn)行測(cè)試,IE8也是使用的符合W3C標(biāo)準(zhǔn)的 document.getElementById(ID).contentDocument 方法。所以我們可以寫(xiě)一個(gè)在IE和Firefox下通用的獲取iframe document對(duì)象的函數(shù)—getIFrameDOM:

functiongetIFrameDOM(id){returndocument.getElementById(id).contentDocument||document.frames[id].document;}

P.S.:如果我們要獲取iframe的window對(duì)象,而不是document對(duì)象,可以使用document.getElementById(ID).contentWindow的方法。這樣我們就可以使用子窗口中的window對(duì)象了,比如子窗口中的函數(shù)。

在子窗口使用父窗口的函數(shù),獲取父窗口document對(duì)象


在子窗口中,我們可以通過(guò)parent就可以獲得父窗口的window對(duì)象,如果假如我們?cè)诟复翱谟幸粋(gè)函數(shù)為getIFrameDOM,我們可以通過(guò)parent.getIFrameDOM來(lái)調(diào)用,同理我們使用parent.document就可以在子窗口中訪問(wèn)父窗口的document對(duì)象了。

使用JavaScript進(jìn)行iframe的DOM操作實(shí)例

首先,我們?cè)诟复翱谥幸雰蓚(gè)iframe子窗口,ID分別為wIframeA、wIframeB,地址分別為:a.html、b.html。
父窗口主要HTML代碼如下:

此處可通過(guò)iframeB的JavaScript函數(shù),來(lái)替換哦~

 

在子窗口A、B中我放了一個(gè)ID為hello的P,以方便我們進(jìn)行DOM操作演示,子窗口A、B的主要HTML代碼如下:

Hello World!

1、在iframe中,父窗口操作子窗口的DOM

建好了父窗口跟子窗口,這樣我們可以在父窗口中,通過(guò)以下iframeA()函數(shù)來(lái)把子窗口A更換P的背景顏色為紅色:

functioniframeA(){//給子窗口A改變ID為hello的背景色vara=getIFrameDOM("wIframeA");a.getElementById('hello').style.background="red";}functiongetIFrameDOM(id){//兼容IE、Firefox的iframe DOM獲取函數(shù)returndocument.getElementById(id).contentDocument||document.frames[id].document;}

2、在iframe中,子窗口操作父窗口的DOM

在子窗口中,我們可以方便的進(jìn)行父窗口DOM操作,只需要在DOM操作之前添加亦歌parent對(duì)象的方法就可以啦,如:在上面的子窗口B中,我們可以使用下面的代碼把,父窗口中ID為“pHello”的內(nèi)容給替換掉:

-------------------

3、在iframe中,子窗口A操作子窗口B的DOM

既然子窗口可以操作父窗口的window對(duì)象和document對(duì)象,那么子窗口也可以操作另外的子窗口的DOM啦~斷橋殘雪在子窗口B中可以直接使用parent直接調(diào)用父窗口中的getIFrameDOM函數(shù)獲得子窗口A的document對(duì)象,這樣要修改子窗口A的內(nèi)容就很簡(jiǎn)單啦,如以下的代碼:

vara=parent.getIFrameDOM("wIframeA");

===================================================================================

一個(gè)iframe高度自動(dòng)變化的問(wèn)題搞了我半天,網(wǎng)上找了下資料,不是很好,結(jié)合了一下jquery(版本1.3.2),4行代碼即可,完美兼容IE、Firefox、Opera、Safari、Google Chrome,js如下:

 
function  heightSet(thisFrame){
      if($.browser.mozilla || $.browser.msie){
          bodyHeight =window.frames["thisFrameName"].document.body.scrollHeight;
      }else{
          bodyHeight =thisFrame.contentWindow.document.documentElement.scrollHeight;
          //這行可代替上一行,這樣heightSet函數(shù)的參數(shù)可以省略了
          //bodyHeight = document.getElementById("thisFrameId").contentWindow.document.documentElement.scrollHeight;
      }
       document.getElementById("thisFrameId").height=bodyHeight;  

}

 

     

引用

this關(guān)鍵字在各種瀏覽器似乎有不同的意思,FF和IE必須要通過(guò)iframe的名字去得到內(nèi)部頁(yè)面高度,而其他瀏覽器則可以用this或ID


引用

都在說(shuō)一個(gè)異步的問(wèn)題,如果你ajax用得特別多,但又不想每次都去設(shè)置,那動(dòng)態(tài)改變iframe肯定達(dá)不到你的代碼清潔要求,沒(méi)辦法,要么你就脫離iframe。我只能說(shuō)說(shuō)一般處理方式,畢竟ajax或動(dòng)態(tài)表單在一般應(yīng)用中只占小數(shù)比例,異步請(qǐng)求后只需在后面加上:


Js代碼

parent.window.heightSet(); 

 

    html編輯器
    (73)html編輯器
    我們做網(wǎng)頁(yè)的時(shí)候最難找的就是編輯器,網(wǎng)上找一個(gè)吧,要不是圖片上傳錯(cuò)誤,就是到處都是錯(cuò)誤,垃圾太多.大家都需要一個(gè)簡(jiǎn)單,速度快的.西西為您提供最好用的編輯器一站式下載編輯器定義編輯器指的是一類編輯制作工具,可自定義窗囗,編輯主題索引,可選擇添搜索頁(yè),無(wú)任何不自由。編輯器哪個(gè)好用小編個(gè)人比較喜歡使用和,這兩款編輯器軟件都有不錯(cuò)的表現(xiàn)。至于編輯器哪個(gè)好用,這就要根據(jù)你的個(gè)人需求去選擇對(duì)應(yīng)的編輯器啦...更多>>
    • UltraEdit-32中文版21.20.1001 中文

      06-29 / 19.5M

      推薦理由:ultraEdit 32 破解版 簡(jiǎn)體中文 內(nèi)有安裝說(shuō)明,完全免費(fèi),無(wú)試用期的。該軟件功能強(qiáng)大,能打開(kāi)各種格式的文件
    • pyscripter x642.5.3 官方最新版

      11-10 / 4.7M

      推薦理由:python編輯器,代碼補(bǔ)全、參數(shù)提示補(bǔ)全工具,這個(gè)工具其實(shí)非常重要,可以大大提高開(kāi)發(fā)效率,減少出錯(cuò)。很滿
    • 快手AAuto Studio10.152 綠色中文免

      02-20 / 8.5M

      推薦理由:快手aauto是由一鶴軟件耗時(shí)四年開(kāi)發(fā)新一代編程語(yǔ)言。完美支持靜態(tài)類型、動(dòng)態(tài)類型,完美支持com、dllapi、re
    • ultraedit64位破解版v22.20.0.49 綠

      03-31 / 37.9M

      推薦理由:UltraEdit是最強(qiáng)大的一款超值文本編輯器!ultraedit64位破解版,適用于Windows64位系統(tǒng)使用,此版為綠色破解
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁(yè)設(shè)計(jì)軟件,是最優(yōu)秀的可視化網(wǎng)頁(yè)設(shè)計(jì)工
    • Adobe Dreamweaver CS5官方簡(jiǎn)體中文

      05-15 / 436.8M

      推薦理由:Adobe Dreamweaver CS5 軟件使設(shè)計(jì)人員和開(kāi)發(fā)人員能充滿自信地構(gòu)建基于標(biāo)準(zhǔn)的網(wǎng)站。由于同新的 Adobe CS Li
    dreamweaver cs6
    (14)dreamweaver cs6
    新版本使用了自適應(yīng)網(wǎng)格版面創(chuàng)建頁(yè)面,在發(fā)布前使用多屏幕預(yù)覽審閱設(shè)計(jì),可大大提高工作效率。改善的性能,更高效地傳輸大型文件。實(shí)時(shí)視圖和多屏幕預(yù)覽面板可呈現(xiàn)代碼,更能夠檢查自己的工作。曾經(jīng)風(fēng)靡一時(shí)的網(wǎng)頁(yè)三劍客成員之一是目前應(yīng)用最廣的網(wǎng)頁(yè)制作軟件,原本是由公司所開(kāi)發(fā)的著名網(wǎng)站開(kāi)發(fā)工具,隨被收購(gòu)后,改名為。它是第一套針對(duì)專業(yè)網(wǎng)頁(yè)設(shè)計(jì)師特別發(fā)展的視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具,以及在之后推出的針對(duì)專業(yè)網(wǎng)頁(yè)圖像設(shè)計(jì)的,三者...更多>>
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁(yè)設(shè)計(jì)軟件,是最優(yōu)秀的可視化網(wǎng)頁(yè)設(shè)計(jì)工
    • Dreamweaver cc amtlib.dll補(bǔ)丁

      07-05 / 834KB

      推薦理由:Adobe Dreamweaver CC 13.0 build 6390多語(yǔ)言正式版的破解補(bǔ)丁,破解后程序不再提示剩余天數(shù)與激活注冊(cè)。關(guān)
    • Dreamweaver CS5 HTML 5 擴(kuò)展包

      06-22 / 5.7M

      推薦理由:安裝了該擴(kuò)展后再也不用擔(dān)心不記得難記的css3樣式代碼了! 剛裝 Dreamweaver CS5 的時(shí)候,發(fā)現(xiàn)新建文檔的時(shí)
    • Dreamweaver插件包西西整理

      01-08 / 2.7M

      推薦理由:西西小編整理的一些比較常用的Dreamweaver插件,希望能對(duì)大家有所幫助!persistent_layers 不管滾動(dòng)條如何拉
    • Adobe Dreamweaver CS4中文精簡(jiǎn)版

      04-11 / 84.5M

      推薦理由:使用業(yè)界領(lǐng)先的Web 創(chuàng)作工具之一構(gòu)建世界級(jí)的網(wǎng)站和應(yīng)用程序。Adobe® Dreamweaver® CS4 軟件是 W
    • Dreamweaver jQuery智能提示插件1.

      07-31 / 109KB

      推薦理由:1.2.0版本插件在1.0.0插件基礎(chǔ)上進(jìn)一步修改,版權(quán)信息僅保留致謝信息,刪除作者為了代碼整體提示美觀度,故

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(11)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)