2010-10-12 49 views
43

我已經在服務器上加載了一個css文件,所以我有一個URL與我。我如何使用JQuery將其加載到我的Perl代碼中?如何使用jquery加載CSS

所以目前我在硬編碼石匠我的頁面中的CSS這是從頁面若有所失這樣

JQ.onReady('show', function(){ 
    JQ.addStyles({styles: ["\n\n.ap_classic { border-top:1px solid #ccc;border-left:1px solid #ccc;border-bottom:1px solid #2F2F1D; border-right:1px solid #2F2F1D;background-color:#EFEDD4;padding:3px; } .ap_classic .ap_titlebar { color:#86875D;font-size:12px;padding:0 0 3px 0;line-height:1em; } .ap_classic .ap_close { float:right; } .ap_classic .ap_content { clear:both;background-color:white;border:1px solid #ACA976;padding:8px;font-size:11px; } "]}); 
}); 

我想避免硬編碼這個CSS?

+1

爲什麼是必須的jQuery?爲什麼不直接輸出'link rel ='到頭部? – 2010-10-12 09:50:22

+0

不知道你的意思是將它加載到你的Perl代碼中,你想修改文件嗎?或者只是將它顯示在頁面上?如果是後者,我會嘗試從perl/html加載它。 – Marko 2010-10-12 09:50:54

+3

可能的重複[請求時加載外部樣式表?](http://stackoverflow.com/questions/2126238/load-external-stylesheets-on-request) – 2010-10-12 09:51:03

回答

68

我不知道爲什麼你不能只是插入<link/>元素在<head/>部分,但這裏有一個jQuery的片段:

$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', 'your stylesheet url')); 
+0

我有一個泥瓦斯頁面。所以它不是一個HTML頁面,我可以設置標題。 – TopCoder 2010-10-12 09:59:34

+0

正在嘗試相同的...但IE版本8不加載使用此方法加載的CSS。 – Rohan210 2012-06-20 12:10:45

+6

document.createStyleSheet('style.css'); IE FIX – Rohan210 2012-06-20 12:35:41

32

再次,按Dynamically loading css stylesheet doesn't work on IE

您需要設置最後,只有鏈接ELEM被附加於頭後,將href ATTR:

$('<link>') 
    .appendTo('head') 
    .attr({ 
     type: 'text/css', 
     rel: 'stylesheet', 
     href: '/css/your_css_file.css' 
    }); 
+2

.appendTo('head')也適用於我 – Sergey 2014-02-03 23:19:04

+0

Doh,當然會!當我編碼時,我一定是睡着了。大修正謝爾蓋:) – ekerner 2014-02-05 00:21:40