JavaScript动态创建link标签到head里的方法


Posted in Javascript onDecember 22, 2014

本文实例讲述了JavaScript动态创建link标签到head里的方法。分享给大家供大家参考。具体分析如下:

相信有很多做前端的朋友碰到过需要用 JavaScript 动态创建样式表标签——link标签。这里我们就来说说如何在浏览器中动态创建link标签。

使用 jQuery 创建 link 标签

如果你开发中喜欢用jQuery,那么用jQuery在创建link标签应该是这样的:

var cssURL = '/style.css',

    linkTag = $('<link href="' + cssURL + '" rel="stylesheet" type="text/css" media="' + (media || "all") + '" charset="'+ charset || "utf-8" +'" />');

// 请看清楚,是动态将link标签添加到head里   

$($('head')[0]).append(linkTag);

使用原生 JavaScript 创建 link 标签

如果你喜欢纯天然的 JavaScript,就要需要这么写:

var head = document.getElementsByTagName('head')[0],

    cssURL = '/style.css',

    linkTag = document.createElement('link');

 

    linkTag.id = 'dynamic-style';

 linkTag.href = cssURL;

 linkTag.setAttribute('rel','stylesheet');

 linkTag.setAttribute('media','all');

 linkTag.setAttribute('type','text/css');

 

head.appendChild(linkTag);

IE 里特有的方法 createStyleSheet

IE 里特有的方法 createStyleSheet 方法也是很方便。

var head = document.getElementsByTagName('head')[0],

    cssURL = 'themes/BlueNight/style.css',

 // document.createStyleSheet 的同时就已经把link标签添加到了head中了,怎么讲呢,倒是挺方便

    linkTag = document.createStyleSheet(cssURL);

createStyleSheet( [sURL] [, iIndex])方法接受两个参数,sURL就是CSS文件的URL路径。iIndex 为可选参数,指插入的link在页面中stylesheets collection的索引位置,默认是在最后添加新创建的样式。

完整的解决方案

基本上都介绍完了,来看看完整的解决方案吧:

function createLink(cssURL,lnkId,charset,media){ 

var head = $($('head')[0]),

    linkTag = null;

 

 if(!cssURL){

     return false;

 }

 

 linkTag = $('<link href="' + cssURL + '" rel="stylesheet" type="text/css" media="' + (media || "all") + '" charset="'+ charset || "utf-8" +'" />');

  

 head.append(linkTag);

}

function createLink(cssURL,lnkId,charset,media){ 

    var head = document.getElementsByTagName('head')[0],

        linkTag = null;

  

 if(!cssURL){

     return false;

 }

    

 linkTag = document.createElement('link');

 linkTag.setAttribute('id',(lnkId || 'dynamic-style'));

 linkTag.setAttribute('rel','stylesheet');

 linkTag.setAttribute('charset',(charset || 'utf-8'));

 linkTag.setAttribute('media',(media||'all'));

 linkTag.setAttribute('type','text/css');

    linkTag.href = cssURL; 

 

    head.appendChild(linkTag); 

}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
取得传值的函数
Oct 27 Javascript
JavaScript自定义事件介绍
Aug 29 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
Angular Js文件上传之form-data
Aug 28 Javascript
深入理解javascript中的 “this”
Jan 17 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
JavaScript之DOM_动力节点Java学院整理
Jul 03 Javascript
利用javascript如何随机生成一定位数的密码
Sep 22 Javascript
微信小程序scroll-view实现字幕滚动
Jul 14 Javascript
Vue2 监听属性改变watch的实例代码
Aug 27 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
javascript中Date对象的getDay方法使用指南
Dec 22 #Javascript
原生javaScript实现图片延时加载的方法
Dec 22 #Javascript
使用JavaScript链式编程实现模拟Jquery函数
Dec 21 #Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 #Javascript
编写简单的jQuery提示插件
Dec 21 #Javascript
不使用ajax实现无刷新提交表单
Dec 21 #Javascript
webapp框架AngularUI的demo改造之路
Dec 21 #Javascript
You might like
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
基于jquery的表格排序
2010/09/11 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python深入学习之闭包
2014/08/31 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
servlet面试题
2012/08/20 面试题
函授毕业自我鉴定
2013/12/19 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
党员党性分析材料
2014/02/17 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
学生打架检讨书
2014/10/20 职场文书
勇敢的心观后感
2015/06/09 职场文书
小王子读书笔记
2015/06/29 职场文书
数学复习课教学反思
2016/02/18 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB