jquery选择@import url()

时间:2011-05-31 19:47:04

标签: jquery css refresh

https://github.com/NV/auto_update_stylesheets

我正在尝试更新这个伟大的脚本以使用残忍的CSS导入,如:

<style type="text/css" media="all">@import url("http://192.168.1.238/system.base.css");
</style>

该脚本仅适用于css的正常包含:

<link href="stylesheets/bundle_github.css" media="screen" rel="stylesheet" type="text/css" />

我理解此脚本的逻辑,但我的问题是如何在此示例@import url ('foo')中选择url()foo内的部分。如果我知道这是否可能,我可以解决我的问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

实际上没有一个很好的跨浏览器方式。有关浏览器实施CSS规则的方式的详细信息,请参阅QuirksMode

您必须确定获取@import规则以便解析它的正确方法。

对于IE,您需要获得document.styleSheets[0].imports[0],假设您网页上的第一个stylelink rel="stylesheet"引用包含@import规则作为其第一条规则。您似乎需要致电document.styleSheets[0].removeImport(0);document.styleSheets[0].addImport("URL");进行修改。

其他浏览器似乎使用document.styleSheets[0].cssRules[0]假设相同的结构。对于那些您需要使用document.styleSheets[0].deleteRule(0)document.styleSheets[0].insertRule('@import url("URL")')的人。这些是标准的DOM Level 2规则;见here

希望有所帮助。