IE中createElement需要注意的一個(gè)問題
var $alertPanel = $( document.createElement("div") );
$alertPanel.css("width","120px").css("height","50px").text("Hello CssRain!");
$('body',parent.document).append($alertPanel);
順著他的意思,我也寫了個(gè)Demo,發(fā)現(xiàn)確實(shí)是這樣。
翻了翻資料,也沒看到類似的問題。
然后使用原生的DOM方法寫了一次,發(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è)父頁面元素,那么你必須使創(chuàng)建元素屬于父頁面。
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)父頁面的方法。
- createElement與createDocumentFragment的點(diǎn)點(diǎn)區(qū)別小結(jié)
- javascript createElement()創(chuàng)建input不能設(shè)置name屬性的解決方法
- Javascript createElement和innerHTML增加頁面元素的性能對(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 鼠標(biāo)拖動(dòng)圖標(biāo)技術(shù)
剛剛學(xué)習(xí)了個(gè)js的小技術(shù),還蠻好玩的,以后會(huì)把做的一些小例子貼上來,方便自己也可以跟大家一起分享學(xué)習(xí)成果,哈哈~~2010-02-02JavaScript讀寫二進(jìn)制數(shù)據(jù)的方法詳解
avascript里有兩個(gè)內(nèi)置對(duì)象,一個(gè)是ArrayBuffer;一個(gè)是DataView,讀寫二進(jìn)制數(shù)據(jù)都需要使用這兩個(gè)對(duì)象。這篇文章主要給大家介紹了關(guān)于JavaScript讀寫二進(jìn)制數(shù)據(jù)的方法,需要的朋友可以參考下2018-09-09Hammer.js+輪播原理實(shí)現(xiàn)簡(jiǎn)潔的滑屏功能
這篇文章主要介紹了Hammer.js+輪播原理實(shí)現(xiàn)簡(jiǎn)潔的滑屏功能的相關(guān)資料,需要的朋友可以參考下2016-02-02IE6-8中Date不支持toISOString的修復(fù)方法
這篇文章主要介紹了IE6-8中Date不支持toISOString的修復(fù)方法,需要的朋友可以參考下2014-05-05js實(shí)現(xiàn)跨域的4種實(shí)用方法原理分析
這篇文章主要分析了js實(shí)現(xiàn)跨域的4種實(shí)用方法原理,主要是使用jsonp跨域,使用window.name來進(jìn)行跨域,對(duì)這方面感興趣的朋友可以參考一下2015-10-10JavaScript實(shí)現(xiàn)簡(jiǎn)單日歷效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09safari,opera嵌入iframe頁面cookie讀取問題解決方法
最近做的合作網(wǎng)站嵌入到對(duì)方的iframe中去,在safari,opera和有些版本的搜狗瀏覽器(內(nèi)核版本原因)中不能讀到cookie。2010-06-06基于html+css+js實(shí)現(xiàn)簡(jiǎn)易計(jì)算器代碼實(shí)例
這篇文章主要介紹了基于html+css+js實(shí)現(xiàn)簡(jiǎn)易計(jì)算器代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02JS基于設(shè)計(jì)模式中的單例模式(Singleton)實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能
這篇文章主要介紹了JS基于設(shè)計(jì)模式中的單例模式(Singleton)實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能.結(jié)合實(shí)例形式分析了javascript基于單例模式結(jié)合ajax針對(duì)數(shù)據(jù)庫進(jìn)行增刪改查的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02