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 相关文章推荐
javascript 实用的文字链提示框效果
Jun 30 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
Nov 30 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
vue resource post请求时遇到的坑
Oct 19 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
layer页面跳转,获取html子节点元素的值方法
Sep 27 Javascript
微信小程序wxml列表渲染原理解析
Nov 27 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 Javascript
详解JavaScript作用域、作用域链和闭包的用法
Sep 03 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 实现多服务器共享 SESSION 数据
2009/08/15 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
PHP7 list() 函数修改
2021/03/09 PHP
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python构建深度神经网络(续)
2018/03/10 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
python计算导数并绘图的实例
2020/02/29 Python
Python如何输出百分比
2020/07/31 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
公司接待方案
2014/03/08 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
文明村创建实施方案
2014/03/27 职场文书
护士感人事迹
2014/05/01 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
如何书写邀请函?
2019/06/24 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python