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
内的部分。如果我知道这是否可能,我可以解决我的问题。
谢谢。
答案 0 :(得分:1)
实际上没有一个很好的跨浏览器方式。有关浏览器实施CSS规则的方式的详细信息,请参阅QuirksMode。
您必须确定获取@import
规则以便解析它的正确方法。
对于IE,您需要获得document.styleSheets[0].imports[0]
,假设您网页上的第一个style
或link 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。
希望有所帮助。