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 相关文章推荐
jquery实现文字由下到上循环滚动的实例代码
Aug 09 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
Jqgrid之强大的表格插件应用
Dec 02 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
Mar 01 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
jQuery ajax调用webservice注意事项
Oct 08 jQuery
基于vue2实现左滑删除功能
Nov 28 Javascript
微信小程序实现YDUI的ScrollTab组件
Feb 02 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
通过JS深度判断两个对象字段相同
Jun 14 Javascript
使用xampp将angular项目运行在web服务器的教程
Sep 16 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
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
Yii分页用法实例详解
2014/12/04 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
CI框架表单验证实例详解
2016/11/21 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python中sys.argv函数精简概括
2018/07/08 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
一些.net面试题
2014/10/06 面试题
出纳的岗位职责
2013/11/09 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
国庆宣传标语
2014/06/30 职场文书
Python实现科学占卜 让视频自动打码
2022/04/09 Python
Python PIL按比例裁剪图片
2022/05/11 Python