快速獲取/設(shè)置iframe內(nèi)對象元素的幾種js實(shí)現(xiàn)方法
1、IE專用(通過frames索引形象定位): document.frames[i].document.getElementById('元素的ID');
2、IE專用(通過IFRAME名稱形象定位): document.frames['iframe的name'].document.getElementById('元素的ID');
以上方法,不僅對IFRAME適用,對FRAMESET里的FRAME也同樣適用。IE雖然擅于自定標(biāo)準(zhǔn),但不得不說它很多的設(shè)計(jì)還是比較體現(xiàn)人性化的。比如這個(gè),它在同樣支持下面的標(biāo)準(zhǔn)路徑之外,提供了一個(gè)簡潔且形象化的寫法。
3、通用方法: document.getElementById('iframe的ID').contentWindow.document.getElementById('元素的ID')
注意要加上contentWindow,往往出現(xiàn)問題都是因?yàn)檫@個(gè)容易被忽略,它代表FRAME和IFRAME內(nèi)部的窗口對象。
但是,很明顯,這種寫法非常要命,太長了。如果要操作一系列里面的元素,這樣寫起來,實(shí)在夠受的,就算用復(fù)制粘貼大法,眼睛看起來也是個(gè)問題。
4、通用方法的簡寫:
對document.getElementById定義一個(gè)短名稱,稍微熟悉JS的朋友都知道這個(gè)方法。在這里它可以發(fā)揮雙倍的作用,如下例:
var $id=document.getElementById;
$Id('iframe的ID').contentWindow.$Id('元素的ID') //這樣就得到了要取的對象
在這一點(diǎn)上,我還是喜歡IE的做法,比較呵護(hù)。因?yàn)槲④洸皇且粋€(gè)單獨(dú)的瀏覽器開發(fā)商,它本身也要大量地編寫開發(fā)HTML/ASP等文檔,所以比較能夠做到這一點(diǎn)。而其它的瀏覽器開發(fā)商,基本只是站在一個(gè)瀏覽器的立場,把最基本的鏈路走通就完事了,很少站在開發(fā)者立場去設(shè)計(jì)出一些類似這樣既簡便又不失語義化的捷徑來。很多人動(dòng)輒說它們“標(biāo)準(zhǔn)”,在有些地方固然有理,但在有些地方,這種標(biāo)準(zhǔn)也不過是一種冷漠。
以上這篇快速獲取/設(shè)置iframe內(nèi)對象元素的幾種js實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于JS實(shí)現(xiàn)的笛卡爾乘積之商品發(fā)布
本文給大家介紹JS實(shí)現(xiàn)的笛卡爾乘積之商品發(fā)布的相關(guān)內(nèi)容,涉及到j(luò)s笛卡爾積算法的相關(guān)知識,本文介紹的非常詳細(xì),具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05
JavaScript實(shí)現(xiàn)網(wǎng)頁動(dòng)態(tài)生成表格
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁動(dòng)態(tài)生成表格,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
微信小程序跳轉(zhuǎn)到其他網(wǎng)頁(外部鏈接)的實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序跳轉(zhuǎn)到其他網(wǎng)頁(外部鏈接)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
基于rollup的組件庫打包體積優(yōu)化小結(jié)
這篇文章主要介紹了基于rollup的組件庫打包體積優(yōu)化小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
用IE重起計(jì)算機(jī)或者關(guān)機(jī)的示例代碼
本篇文章主要是對用IE重起計(jì)算機(jī)或者關(guān)機(jī)的實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03

