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 相关文章推荐
五段实用的js高级技巧
Dec 20 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
jQuery控制TR显示隐藏的几种方法
Jun 18 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
JS实现光滑展开合拢的菜单效果代码
Sep 16 Javascript
基于 Node.js 实现前后端分离
Apr 23 Javascript
Bootstrap Search Suggest使用例子
Dec 21 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 Javascript
angular4中引入echarts的方法示例
Jan 29 Javascript
详解小程序循环require之坑
Mar 08 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
Python获取apk文件URL地址实例
2013/11/01 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
使用Python来开发微信功能
2018/06/13 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
工作自我评价分享
2013/12/01 职场文书
给老婆道歉的话
2015/01/20 职场文书
毕业论文致谢词
2015/05/14 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
十二生肖观后感
2015/06/12 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
Python 中的 copy()和deepcopy()
2021/11/07 Python