IE中createElement需要注意的一個(gè)問(wèn)題
更新時(shí)間:2010年07月13日 21:12:41 作者:
最近有讀者求助,說(shuō)在iframe中,創(chuàng)建一個(gè)元素,然后添加到父頁(yè)面中在ie6,ie7中行不通,而firefox和IE8可以。
代碼如下:
var $alertPanel = $( document.createElement("div") );
$alertPanel.css("width","120px").css("height","50px").text("Hello CssRain!");
$('body',parent.document).append($alertPanel);
順著他的意思,我也寫(xiě)了個(gè)Demo,發(fā)現(xiàn)確實(shí)是這樣。
翻了翻資料,也沒(méi)看到類(lèi)似的問(wèn)題。
然后使用原生的DOM方法寫(xiě)了一次,發(fā)現(xiàn)也不行,一樣。
var div = document.createElement("div");
div.style.width = "120px";
div.style.height = "50px";
div.style.border = "solid 1px #000000";
div.innerHTML = "Hello CssRain!";
parent.document.body.appendChild(div);
于是想到既然appendChild要parent.document,那么創(chuàng)建的時(shí)候是否也要parent.document.createElement呢?
于是把代碼改成:
var div = parent.document.createElement("div");
div.style.width = "120px";
div.style.height = "50px";
div.style.border = "solid 1px #000000";
div.innerHTML = "Hello CssRain!";
parent.document.body.appendChild(div);
這樣就成功了, IE6和IE7能用。
看例子:
演示地址:http://demo.jb51.net/js/IE-createElement/page1.htm
總結(jié):
如果你想在IE6,IE7中創(chuàng)建一個(gè)父頁(yè)面元素,那么你必須使創(chuàng)建元素屬于父頁(yè)面。
var dummy = parent.document.createElement("div");
var t = parent.document.createElement("table");
在Firefox,IE8中,它允許在一個(gè)文檔中創(chuàng)建要追加到另一個(gè)文檔的元素。
所以在Firefox,IE8中,可以使用parent.document也可以使用document。
另外google瀏覽器非常怪異,很亂。如果要兼容google瀏覽器,那么建議換種思路吧,比如直接用 parent.函數(shù)名() 調(diào)父頁(yè)面的方法。
復(fù)制代碼 代碼如下:
var $alertPanel = $( document.createElement("div") );
$alertPanel.css("width","120px").css("height","50px").text("Hello CssRain!");
$('body',parent.document).append($alertPanel);
順著他的意思,我也寫(xiě)了個(gè)Demo,發(fā)現(xiàn)確實(shí)是這樣。
翻了翻資料,也沒(méi)看到類(lèi)似的問(wèn)題。
然后使用原生的DOM方法寫(xiě)了一次,發(fā)現(xiàn)也不行,一樣。
復(fù)制代碼 代碼如下:
var div = document.createElement("div");
div.style.width = "120px";
div.style.height = "50px";
div.style.border = "solid 1px #000000";
div.innerHTML = "Hello CssRain!";
parent.document.body.appendChild(div);
于是想到既然appendChild要parent.document,那么創(chuàng)建的時(shí)候是否也要parent.document.createElement呢?
于是把代碼改成:
復(fù)制代碼 代碼如下:
var div = parent.document.createElement("div");
div.style.width = "120px";
div.style.height = "50px";
div.style.border = "solid 1px #000000";
div.innerHTML = "Hello CssRain!";
parent.document.body.appendChild(div);
這樣就成功了, IE6和IE7能用。
看例子:
演示地址:http://demo.jb51.net/js/IE-createElement/page1.htm
總結(jié):
如果你想在IE6,IE7中創(chuàng)建一個(gè)父頁(yè)面元素,那么你必須使創(chuàng)建元素屬于父頁(yè)面。
復(fù)制代碼 代碼如下:
var dummy = parent.document.createElement("div");
var t = parent.document.createElement("table");
在Firefox,IE8中,它允許在一個(gè)文檔中創(chuàng)建要追加到另一個(gè)文檔的元素。
所以在Firefox,IE8中,可以使用parent.document也可以使用document。
另外google瀏覽器非常怪異,很亂。如果要兼容google瀏覽器,那么建議換種思路吧,比如直接用 parent.函數(shù)名() 調(diào)父頁(yè)面的方法。
您可能感興趣的文章:
- createElement與createDocumentFragment的點(diǎn)點(diǎn)區(qū)別小結(jié)
- javascript createElement()創(chuàng)建input不能設(shè)置name屬性的解決方法
- Javascript createElement和innerHTML增加頁(yè)面元素的性能對(duì)比
- createElement動(dòng)態(tài)創(chuàng)建HTML對(duì)象腳本代碼
- getElementByID、createElement、appendChild幾個(gè)DHTML元素
- 動(dòng)態(tài)加載js文件 document.createElement
- document.createElement("A")比較不錯(cuò)的屬性
- document.createElement()用法
- document.createElement()用法及注意事項(xiàng)(ff下不兼容)
相關(guān)文章
javascript實(shí)現(xiàn)多張圖片左右無(wú)縫滾動(dòng)效果
本文主要介紹了javascript實(shí)現(xiàn)多張圖片左右無(wú)縫滾動(dòng)效果的實(shí)例。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03
微信小程序swiper-dot中的點(diǎn)如何改成滑塊詳解
swiper組件是滑塊視圖容器,這篇文章主要給大家介紹了關(guān)于微信小程序swiper-dot中的點(diǎn)如何改成滑塊的相關(guān)資料,實(shí)現(xiàn)以后的效果還是不錯(cuò)的,需要的朋友可以參考下2021-07-07
原生JS實(shí)現(xiàn)循環(huán)Nodelist Dom列表的4種方式示例
這篇文章主要介紹了原生JS實(shí)現(xiàn)循環(huán)Nodelist Dom列表的4種方式,結(jié)合具體實(shí)例形式分析了javascript循環(huán)遍歷Nodelist Dom列表的常用操作技巧,需要的朋友可以參考下2018-02-02
JS+HTML5本地存儲(chǔ)Localstorage實(shí)現(xiàn)注冊(cè)登錄及驗(yàn)證功能示例
這篇文章主要介紹了JS+HTML5本地存儲(chǔ)Localstorage實(shí)現(xiàn)注冊(cè)登錄及驗(yàn)證功能,結(jié)合實(shí)例形式分析了基于JS+HTML5本地存儲(chǔ)Localstorage實(shí)現(xiàn)注冊(cè)登錄及驗(yàn)證相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
iphone safari不支持position fixed的解決方法
最近一直在做移動(dòng)web開(kāi)發(fā),開(kāi)發(fā)過(guò)程中遇到了許多問(wèn)題,mobile safari不支持position: fixed就是一件很頭疼的事情2012-05-05
解決Layui選擇全部,換頁(yè)checkbox復(fù)選框重新勾選的問(wèn)題方法
今天小編就為大家分享一篇解決Layui選擇全部,換頁(yè)checkbox復(fù)選框重新勾選的問(wèn)題方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
JavaScript requestAnimationFrame動(dòng)畫(huà)詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript requestAnimationFrame動(dòng)畫(huà),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09

