javascript – 获取html文件中使用的所有CSS

前端之家收集整理的这篇文章主要介绍了javascript – 获取html文件中使用的所有CSS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须得到使用 JavaScript的HTML文件中使用的所有CSS样式.
<html>
    <head>
        <style type="text/css">
            body {
                border: 1px solid silver;
            }
            .mydiv{
                color: blue;
            }
        </style>
    </head>
    <body>
    </body>
</html>

如果上面的代码是我的HTML,我必须在head中编写一个JavaScript函数,它返回一个这样的字符串.

body {
    border: 1px solid silver;
}
.mydiv {
    color: blue;
}

有可能吗?

解决方法

对于内联样式表,您可以像使用任何其他元素一样从普通DOM中获取内容
document.getElementsByTagName('style')[0].firstChild.data

对于外部链接样式表,它更成问题.在现代浏览器中,您可以从document.styleSheets [].cssRules [].cssText属性获取每个规则的文本(包括内联,链接和@imported样式表).

不幸的是,IE没有实现这个DOM Level 2 Style/CSS标准,而是使用了its own subtly different版本的StyleSheet和CSSRule接口.因此,您需要一些嗅探和分支代码来重新创建IE中的规则,并且文本可能与原始文本不完全相同. (特别是,IE将全部删除您的属性名称并丢失空格.)

var css= [];

for (var sheeti= 0; sheeti<document.styleSheets.length; sheeti++) {
    var sheet= document.styleSheets[sheeti];
    var rules= ('cssRules' in sheet)? sheet.cssRules : sheet.rules;
    for (var rulei= 0; rulei<rules.length; rulei++) {
        var rule= rules[rulei];
        if ('cssText' in rule)
            css.push(rule.cssText);
        else
            css.push(rule.selectorText+' {\n'+rule.style.cssText+'\n}\n');
    }
}

return css.join('\n');
原文链接:https://www.f2er.com/js/159377.html

猜你在找的JavaScript相关文章