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 闭包在封装函数时的简单分析
Nov 28 Javascript
javascript:history.go()和History.back()的区别及应用
Nov 25 Javascript
javascript中的事件代理初探
Mar 08 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
基于vue2.0动态组件及render详解
Mar 17 Javascript
vue中render函数的使用详解
Oct 12 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
Sep 06 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
JavaScript运行机制实例分析
Apr 11 Javascript
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
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的一个登录的类 [推荐]
2007/03/16 PHP
php注销代码(session注销)
2012/05/31 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
vue中监听返回键问题
2019/08/28 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
新手常见6种的python报错及解决方法
2018/03/09 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
使用K.function()调试keras操作
2020/06/17 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
我们的节日国庆活动方案
2014/08/19 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书