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 相关文章推荐
一个基于jquery的图片切换效果
Jul 06 Javascript
javascript学习笔记(八) js内置对象
Jun 19 Javascript
JS判断表单输入是否为空(示例代码)
Dec 23 Javascript
从零学JS之你需要了解的几本书
May 19 Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 Javascript
JavaScript引用类型和基本类型详解
Jan 06 Javascript
js实现多行文本框统计剩余字数功能
Mar 28 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
用Vue编写抽象组件的方法
May 06 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
Feb 27 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 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中多维数组按指定value排序的实现代码
2014/08/19 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
javascript中的float运算精度实例分析
2010/08/21 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
python uuid模块使用实例
2015/04/08 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python生成数字图片代码分享
2017/10/31 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
餐厅考勤管理制度
2014/01/28 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
2014村务公开实施方案
2014/02/25 职场文书
任命书模板
2014/06/04 职场文书
旷课检讨书
2015/01/26 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers