2

我加載通過AJAX一個字符串,它讀起來就像使用插入從字符串<style>標籤在Internet Explorer

<style>[some definitions]</style> 
<h1>Lots of Markup</h1> 
<p>follows here</p> 

的Webkit/Gecko的一切正常 - 標記插入,樣式應用於。在IE(8)中,儘管樣式定義被忽略。實際上,如果你使用開發者工具,他們已經不在了。

您可以在此JS-小提琴看到,這是行不通的:http://jsfiddle.net/J4Yzr/

而且,我已經看到了你創建一個臨時DOM的對象那招,設置它的innerHTML來您的標記並提取您的標記爲來自臨時元素的DOM對象。這不符合風格標籤的工作(如果我這樣做是正確的,我使用prototypeJS):

var text = '<style>h1{color:red;}</style> style added', 
    el = new Element('div').update(text); 

console.log(el.firstChild); 
//is a HTMLStyleElement in Webkit but a [object Text] in IE 

有沒有人有一個建議,如何正確運用<style>在IE中,如果你從這樣的字符串得到它?

+0

那是prototype.js語法嗎?如果是這樣添加標籤。 – epascarello

+0

是@epascarello – Lukas

回答

1

好的,這太瘋狂了。在你的字符串前添加一個<br/> -Tag,它可以在Internet Explorer中使用。

<br/><style>[some definitions]</style><h1>Lots of Markup</h1> 

您甚至不需要創建臨時DOM對象來插入代碼。只需將其附加到您的網站。

我現在正在做什麼,它插入的代碼與<br/>-TAG並刪除<br/>事後。它很混亂,但它工作。

1

我有同樣的問題,所以我試過你的解決方案,但猜猜是什麼?當我在通過Ajax檢索標記後剝離
時,標記從DOM中消失了!回到原點。

所以我的解決辦法是,而不是前面加上這樣的:

<hr style='display:none'/> 

哪些好聽的伎倆。非常感謝你解決這個問題。