您的位置:首页 > Web前端 > JavaScript

javascript 动态样式添加的简单实现

2016-10-11 09:28 651 查看

异步加载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 动态 添加 样式