欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IE中createElement需要注意的一個(gè)問題

 更新時(shí)間:2010年07月13日 21:12:41   作者:  
最近有讀者求助,說在iframe中,創(chuàng)建一個(gè)元素,然后添加到父頁面中在ie6,ie7中行不通,而firefox和IE8可以。
代碼如下:
復(fù)制代碼 代碼如下:

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)也不行,一樣。
復(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è)父頁面元素,那么你必須使創(chuàng)建元素屬于父頁面。
復(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)父頁面的方法。

相關(guān)文章

最新評(píng)論