簡體   English   中英

IE innerHTML以自定義標簽開頭

[英]IE innerHTML start with custom tags

在IE中,當我將div的innerHTML設置為:

<abc>1<abc>

innerHTML將被轉換為:

 1</ABC>

因為'abc'是自定義標記。 但是,如果我設置:

1<abc>2</abc>

innerHTML將保留'abc'標記,因此innerHTML是:

1<ABC>2</ABC>

要求對行為進行描述。

... 我懂了。 您想知道為什么將元素的innerHTML設置為1時會刪除開始標記,而在innerHTML前面加上數字時卻保留了該標記。

較小的不支持html5標簽的IE的行為會很奇怪。 在這種情況下,很可能將第二種情況解釋為字符串,而在第一種情況下,則將其視為無效標記而只是普通錯誤。

如果您使用jQuery,請嘗試此操作-而不是像

$('#some_element').html('<abc>1</abc>'); // equal to document.getElementById('some_element').innerHTML = '<abc>1</abc>';

嘗試

(function(){if(!/*@cc_on!@*/0)return;var e = "abc,other_custom_tags".split(',');for(var i=0;i<e.length;i++){document.createElement(e[i])}})(); // add the custom tag

var elem = $('<abc>');
elem.html('1');
$('#some_element').html(elem);

並在您的CSS中將abc聲明為有效標簽:

abc{
    display:block;
}

當然,這假設您知道abc將是您網站上使用的標簽。 如果潛在標簽未知,則可能用處不大。

innerHTML屬性的行為未標准化(盡管已在HTML5中進行了一些嘗試)。 在不同的瀏覽器中,實現方式有所不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM