javascript 动态样式添加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 动态样式添加相关的知识,希望对你有一定的参考价值。

异步加载css文件或者异步加载css模块,支持所有浏览器,包括IE,参考至javascript高级编程

1.createLink方法用于创建一个style标签并添加到head标签中

2.createModule方法用于创建一个style样式表的标签,并且如果在IE8以下的版本运行会抛出异常,在异常捕获模块中执行style.styleSheet.cssText兼容IE添加style的样式内容。

 <button id="demo">css文件</button>
    <button id="demo1">css模块</button>
    <script type="text/javascript">
        //异步加载css文件,支持所有浏览器
        document.getElementById("demo").onclick = function () {
            createLink("../../css/demo.css");
        }

        function createLink(src) {
            var link = document.createElement("link");
            link.rel = "stylesheet"
            link.type = "text/css";
            link.href = src;
            document.getElementsByTagName("head")[0].appendChild(link);
        }


        //IE将<style>视为一个特殊的与<script>类似的节点,不允许其访问子节点,事实上,IE此时抛出的错误与向<script>元素添加子节点时抛出的错误相同,
        //解决IE中的这个问题的办法就是访问元素的styleSheet属性,该属性又有一个CSSText属性,可以接受css代码
        document.getElementById("demo1").onclick = function () {
            createModule("body{background:green;}");
        }

        function createModule(css) {
            var style = document.createElement("style");
            style.type = "text/css";
            try {
                style.appendChild(document.createTextNode(css));
            } catch (ex) {
                style.styleSheet.cssText = css;
            }
            document.getElementsByTagName("head")[0].appendChild(style);
        }
    </script>

 

以上是关于javascript 动态样式添加的主要内容,如果未能解决你的问题,请参考以下文章

“高三”笔记之动态JS动态样式

jQuery Mobile动态刷新页面样式

javascript 即兼容性升级页面样式片段

javaScript之动态样式

sublime text 3 添加 javascript 代码片段 ( snippet )

在片段中动态添加文本视图