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 相关文章推荐
javascript 隔行换色函数代码
Oct 24 Javascript
js下通过prototype扩展实现indexOf的代码
Dec 08 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
js获取滚动距离的方法
May 30 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
使用bootstrap插件实现模态框效果
May 10 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
vue实例中data使用return包裹的方法
Aug 27 Javascript
layui radio单选限制下一个radio单选的实例
Sep 03 Javascript
JavaScript异步操作的几种常见处理方法实例总结
May 11 Javascript
Express 配置HTML页面访问的实现
Nov 01 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
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
offsetParent 算法分析
2010/04/05 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
分析Python读取文件时的路径问题
2018/02/11 Python
python3调用R的示例代码
2018/02/23 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
保健品市场营销方案
2014/03/31 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
小学生成绩单评语
2014/12/31 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
停水通知
2015/04/16 职场文书
公司新员工欢迎词
2015/09/30 职场文书
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏