亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

iframe節點初始化的問題探討

2019-10-26 17:14:52
字體:
來源:轉載
供稿:網友
今天忽然想著復習一下富文本編輯器的制作原理。于是二話不說將手把手地做了起來。因為一年前寫過一個簡單的富文本編輯器,所以大概還是有點印象??墒钱斘野褜懗鰜淼拇a跑一下的時候,發現了問題:

復制代碼
代碼如下:
var ifr = document.createElement('iframe');
ifr.width = 300;
ifr.height = 300;
var idoc = ifr.contentDocument || ifr.contentWindow.document;
idoc.designMode = 'on';
idoc.contentEditable = true;
idoc.write('<html><head><style>body{ margin:0px; }</style></head><body></body></html>');
document.body.appendChild(ifr);

大家看看上面的代碼,有沒有發現哪里出現了批漏?

我想如果沒有和我有類似經歷的童鞋估計是看不出這段代碼有什么問題的。那么大家不妨去跑一下,也許你很快就會發現問題。

下面由我來揭曉答案:

這段代碼會拋找不到對象的異常。找不到哪個對象?找不到document對象,啥?怎么可能找不到document對象?當然,這個document對象是iframe的document對象。做過富文本的都知道要先獲取了iframe的document對象才可以設置為可編輯。但是為什么我們獲取不了document對象呢?這里我就不賣關子了。我說說我的解決流程吧。

首先我去谷歌了一下發現我獲取document的寫法是沒有錯的。然后我在想難道是Chrome的原因?難道Chrome抽風不支持這兩個對象?于是換到了Firefox。結果還是一樣。那么可以肯定的是,肯定是自己的代碼問題。

后來通過對比網上的代碼,發現自己的appendChild位置有點不對,于是乎就將它提前到了獲取document對象前:

復制代碼
代碼如下:
var ifr = document.createElement('iframe');
ifr.width = 300;
ifr.height = 300;
document.body.appendChild(ifr);
var idoc = ifr.contentDocument || ifr.contentWindow.document;
idoc.designMode = 'on';
idoc.contentEditable = true;
idoc.write('<html><head><style>body{ margin:3px; word-wrap:break-word; word-break: break-all; }</style></head><body></body></html>');

結果運行一切順利。然后我對此次的錯誤作了分析。其實這個錯誤的原理很簡單。大家都知道iframe其實里面包含的是另一個文檔,而這個文檔只有初始化了才能擁有一個document對象。而如果沒有把iframe元素加入到DOM樹中,iframe中的文檔是不會初始化的。因此,在一開始我們的代碼里,我們獲取的ifr變量中的contentDocument值是null,也就說明了此時iframe中的文檔沒有初始化。

順著這條線,我再檢查了別的節點的初始化情況,發現其實別的元素節點只要一旦創建,無論是否加入到DOM樹中都會擁有其本身的屬性和方法。也就是說在眾多元素節點中iframe算是個異類吧。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品电影网站| 成人免费淫片aa视频免费| 高清一区二区三区四区五区| 亚洲第一免费播放区| 国产美女被下药99| 国产精品久久久久久亚洲影视| 欧美精品做受xxx性少妇| 国产视频亚洲视频| 中文字幕久精品免费视频| 欧美日韩免费观看中文| 美女久久久久久久久久久| 国产成人精品一区二区在线| 国产精品草莓在线免费观看| 国产精品久久久久国产a级| 55夜色66夜色国产精品视频| 精品国产福利视频| 亚洲国产日韩欧美综合久久| 久久影院资源站| 亚洲欧洲自拍偷拍| 国产一区二区三区网站| 欧美午夜女人视频在线| 色婷婷av一区二区三区在线观看| 欧美激情免费在线| 国产精品青青在线观看爽香蕉| 国产精品日韩在线观看| 成人黄色av播放免费| 日韩免费中文字幕| 欧美日韩免费一区| 91热福利电影| 国产一区二区在线免费视频| 成人激情视频在线观看| 91精品国产色综合久久不卡98口| 一区二区三区在线播放欧美| 欧美有码在线视频| 国内精品伊人久久| 隔壁老王国产在线精品| 久久人体大胆视频| 日韩小视频在线观看| 亚洲自拍偷拍福利| 久久韩剧网电视剧| 最新国产成人av网站网址麻豆| 久久亚洲精品国产亚洲老地址| 最近中文字幕mv在线一区二区三区四区| 欧美日韩视频免费播放| 国产精品久久久久久久久久新婚| 一个色综合导航| 亚洲最新视频在线| 91精品久久久久久久久| 久久精品一区中文字幕| 欧美日韩国产一区中文午夜| 日韩av成人在线| 国产精品video| 欧美性猛交xxxx免费看久久久| 亚洲综合在线中文字幕| 国产福利精品视频| 中文字幕日韩欧美精品在线观看| 亚洲国产99精品国自产| 红桃视频成人在线观看| 亚洲免费av网址| 久久综合国产精品台湾中文娱乐网| 国产欧美精品一区二区三区-老狼| 日韩av电影免费观看高清| 日韩在线观看av| 亚洲欧美一区二区三区四区| 在线国产精品播放| 欧美电影免费在线观看| 在线亚洲午夜片av大片| 51午夜精品视频| 91精品国产乱码久久久久久久久| 成人国产精品久久久久久亚洲| 国产a∨精品一区二区三区不卡| 亚洲国产天堂久久综合| 欧美乱大交做爰xxxⅹ性3| 欧美专区在线视频| 在线观看中文字幕亚洲| 欧美麻豆久久久久久中文| 欧美老女人性视频| 成人网在线观看| www.日本久久久久com.| 国产精品久久久久久久久久三级| 国产精品一区二区久久国产| 亚洲伊人一本大道中文字幕| 97色在线观看免费视频| 成人激情视频免费在线| 国产成人鲁鲁免费视频a| 中国日韩欧美久久久久久久久| 亚洲精品乱码久久久久久按摩观| 日韩欧美在线一区| 久久久久国产精品免费网站| 欧美资源在线观看| 国产日韩欧美日韩大片| 欧洲日本亚洲国产区| 成人精品久久av网站| 欧美尺度大的性做爰视频| 亚洲精品一区av在线播放| 91成人精品网站| 亚洲精品电影在线| 欧美激情二区三区| 日韩精品高清视频| 91精品久久久久久久久不口人| 成人免费高清完整版在线观看| 亚洲一区二区三| 久热精品视频在线观看| 伊人久久五月天| 亚洲激情视频在线观看| 成人免费看黄网站| 热re99久久精品国产66热| 欧美理论电影在线观看| 亚洲男人天堂网| 国产精品狠色婷| 国精产品一区一区三区有限在线| 国产欧美在线看| 亚洲男人第一网站| 亚洲电影av在线| 久久久久久久久国产| 久久男人资源视频| 欧美美女18p| 欧美高清视频一区二区| 国产精品久久久av久久久| 91在线视频导航| 国产精品欧美日韩| 91精品在线观| 美日韩在线视频| 精品女同一区二区三区在线播放| 国产精品久久久久久久久久| 92看片淫黄大片欧美看国产片| 国产精品美乳在线观看| 国产精品福利小视频| 欧美精品情趣视频| 91精品国产综合久久男男| 欧美激情网站在线观看| 久久久久久久97| 中文字幕亚洲专区| 国产精品久久综合av爱欲tv| 日韩第一页在线| 国产欧美一区二区三区在线看| 欧美黑人一级爽快片淫片高清| 国产一区二区三区在线视频| 成人黄色免费网站在线观看| 欧美成人一二三| 国产一区二区动漫| 成人精品一区二区三区电影免费| 色老头一区二区三区在线观看| www.国产精品一二区| 国产精品 欧美在线| 综合国产在线观看| 亚洲天堂网站在线观看视频| 国产精品第一页在线| 日本亚洲欧洲色| 一夜七次郎国产精品亚洲| 亚洲另类图片色| 国产这里只有精品| 亚洲欧美成人一区二区在线电影| 亚洲午夜精品久久久久久久久久久久| 欧美日韩亚洲精品内裤| 国产在线一区二区三区| 欧美有码在线视频| 欧美日韩激情视频| 亚洲最大福利网| 欧美激情在线一区| 日韩精品免费一线在线观看| 国产精品在线看| 国产精品久久久久久久久男| 亚洲图片欧美午夜|