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 相关文章推荐
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
详解AngularJS的通信机制
Jun 18 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
JS遍历页面所有对象属性及实现方法
Aug 01 Javascript
深入浅析search 搜索框的写法
Aug 02 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
Mar 08 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
ajaxfileupload.js实现上传文件功能
Apr 19 Javascript
Vue搭建后台系统需要注意的问题
Nov 08 Javascript
微信小程序中data-key属性之数据传输(经验总结)
Aug 22 Javascript
vue下载二进制流图片操作
Oct 26 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
重置版宣传动画
2020/04/09 魔兽争霸
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
PHP小技巧之函数重载
2014/06/02 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
python模块之re正则表达式详解
2017/02/03 Python
多个应用共存的Django配置方法
2018/05/30 Python
python读取Excel实例详解
2018/08/17 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
软件测试常见笔试题
2012/02/04 面试题
企业诚信承诺书
2014/05/23 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
和谐家庭事迹材料
2014/12/20 职场文书