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 相关文章推荐
利用js(jquery)操作Cookie的方法说明
Dec 19 Javascript
jquery列表拖动排列(由项目提取相当好用)
Jun 17 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
Feb 17 Javascript
非常棒的jQuery图片轮播效果
Apr 17 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 Javascript
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 Javascript
JsonProperty 的使用方法详解
Oct 11 Javascript
vue实现防抖的实例代码
Jan 11 Vue.js
表单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
收音机术语解释
2021/03/01 无线电
php数组的概述及分类与声明代码演示
2013/02/26 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
在python3中实现更新界面
2020/02/21 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
python使用smtplib模块发送邮件
2020/12/17 Python
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
公司总经理岗位职责
2014/03/15 职场文书
javaScript Array api梳理
2021/03/31 Javascript
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
Python 语言实现六大查找算法
2021/06/30 Python
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
Python如何用re模块实现简易tokenizer
2022/05/02 Python