2012-08-15 58 views
1
$("head").append('<link href="xxx.css" rel="stylesheet" type="text/css"/>'); 

我發現此代碼段在IE 8中不起作用?追加CSS在IE8中無法正常工作

+6

http://stackoverflow.com/questions/6079702/how-to-append-style-sheets-in-ie-using-jquery – MikeM 2012-08-15 03:01:53

+0

你使用的是什麼版本的jQuery?我相信最新版本不支持IE8 – 2012-08-15 03:02:07

+1

是否有任何理由不能將其添加到您需要的特定頁面的DOM中?在DOM加載後,我從來不喜歡將CSS文件附加到頭部。 – Ohgodwhy 2012-08-15 03:07:05

回答

6

根據this關於jquery站點的bug報告,在IE8中可能存在一個問題,即將css文件附加到包含相關鏈接的dom。

錯誤的海報表明,添加它可以如下工作:

var style = document.createElement("link"); 
    style.setAttribute("type", "text/css"); 
    style.setAttribute("rel", "stylesheet"); 
    style.setAttribute("href", "xxx.css"); 
    jQuery("head")[0].appendChild(style); 

或者說,用一個絕對的URL也可行:

$('<link rel="stylesheet" type="text/css" href="http://yoursite.com/css/xxx.css">').appendTo('head'); 

雖然他去在附加的css文件中通過@import包含的任何文件也不會按預期加載。

我建議給這些測試用例一掄,看看有什麼載荷爲你和什麼不(如果它的工作原理,你應該得到的HTML窗口中的灰色背景):

方法在OP的問題:從我的回答http://jsfiddle.net/vs5NC/20/

首先可能的解決方案:http://jsfiddle.net/vs5NC/17/

其次從我的回答可能的解決方案:http://jsfiddle.net/vs5NC/19/

如果沒有這些工作,這是可能的次在克里斯富爾斯托的answer一個類似的問題可能是一個可行的解決方案。

+0

第一個解決方案在IE8中效果很好,謝謝! – MMeah 2012-10-31 17:38:47