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


Posted in Javascript onOctober 11, 2016

异步加载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 动态样式添加的简单实现全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
htm调用JS代码
Mar 15 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
Javascript Ajax异步读取RSS文档具体实现
Dec 12 Javascript
JavaScript中如何通过arguments对象实现对象的重载
May 12 Javascript
使用js画图之画切线
Jan 12 Javascript
7个有用的jQuery代码片段分享
May 19 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
node.js操作mysql简单实例
May 25 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
JavaScript类型相关的常用操作总结
Feb 14 Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 14 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 #Javascript
javascript 动态脚本添加的简单方法
Oct 11 #Javascript
js HTML5上传示例代码完整版
Oct 10 #Javascript
JavaScript  event对象整理及详细介绍
Oct 10 #Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 #Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 #Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 #Javascript
You might like
PHP程序员编程注意事项
2008/04/10 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
vue.js实现请求数据的方法示例
2017/02/07 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
js实现小星星游戏
2020/03/23 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
Python的Django框架中的表单处理示例
2015/07/17 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
django框架中间件原理与用法详解
2019/12/10 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
我的教育故事演讲稿
2014/05/04 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
python基础学习之递归函数知识总结
2021/05/26 Python