如何通过JavaScript加载我已包含的CSS文件?

时间:2009-07-21 01:16:27

标签: jquery css

我有一些jQuery加载一个像这样的新样式表......

$('head').append('<link rel="stylesheet" type="text/css" href="' + config.basePath + config.stylesheetsPath + 'sections/' + name + '.css" media="screen" class="new site-specific" />');

然后我试图立即从该CSS文件中获取一些信息。它通常不会显示正确的信息,直到事件的第二个触发器(在我想象样式表已加载之后)。

加载CSS时是否可以附加任何触发事件?

2 个答案:

答案 0 :(得分:2)

我不知道触发事件,但您是否可以获取CSS文件的get请求,然后使用新的<head>标记更新<style>,放置文件的内容在<style>标记内?

$(document).ready(function() { 
   $.get("http://example.com/style.css", function(data) {
      $('head').append("<style>" + data + "</style>");
   });
   ... /* your code */ ...
}); 

答案 1 :(得分:2)

除非CSS有某种“onload”事件(并且应该有,因为firebug会显示这样的事情),我会使用以下程序:
1.放置一个带有颜色X的隐藏DOM元素 2.在上传的CSS中,此颜色将更改为y
3.一旦你开始上传(在你的JS中),你就会创建一个列表器,当颜色变为y时,它会提升你想要的功能。

通过listner我的意思是使用setInterval。