`
lovelease
  • 浏览: 385961 次
社区版块
存档分类
最新评论

动态加载js和css的jquery plugin

阅读更多
一个简单的动态加载js和css的jquery代码,用于在生成页面时通过js函数加载一些共通的js和css文件。
	//how to use the function below:
	//$.include('file/ajaxa.js');$.include('file/ajaxa.css');
	//or $.includePath  = 'file/';$.include(['ajaxa.js','ajaxa.css']);(only if .js and .css files are in the same directory)
	$.extend({
	    includePath: '',
	    include: function(file)
	    {
	        var files = typeof file == "string" ? [file] : file;
	        for (var i = 0; i < files.length; i++)
	        {
	            var name = files[i].replace(/^\s|\s$/g, "");
	            var att = name.split('.');
	            var ext = att[att.length - 1].toLowerCase();
	            var isCSS = ext == "css";
	            var tag = isCSS ? "link" : "script";
	            var attr = isCSS ? " type='text/css' rel='stylesheet' " : " type='text/javascript' ";
	            var link = (isCSS ? "href" : "src") + "='" + $.includePath + name + "'";
	            if ($(tag + "[" + link + "]").length == 0) $("head").prepend("<" + tag + attr + link + "></" + tag + ">");
	        }
	    }
	});
	$.include('../js/jquery-ui-1.8.21.custom.min.js');
	$.include('../css/black-tie/jquery-ui-1.8.21.custom.css');

将该函数写入一个common.js文件中,在html中加载该common.js文件,就可以达到目的。该js函数出自以下链接:
http://www.cnblogs.com/chenjinfa/archive/2009/03/17/1414178.html
注意:
1.在html5中,<script>标签已经不支持language属性了,所以我删除了:
var attr = isCSS ? " type='text/css' rel='stylesheet' " : " language='javascript' type='text/javascript' ";

中的language='javascript'
2.原作者在写入js和css标签时,用的是:
document.write("<" + tag + attr + link + "></" + tag + ">");

但是经过实践,发现document.write()方法会在写入前清除原页面的所有内容,也就相当于覆盖的意思,这样明显达不到我的需要,我需要在加载页面时动态的向页面导入共通的js和css,而不能清除我原页面的其他任何内容,所以查了下api,我改用了:
$("head").prepend("<" + tag + attr + link + "></" + tag + ">");

这个方法,$("head").prepend()方法的作用是在<head>标签的最前端追加写入内容。

最后,再补充一个方法,也是通过共通js来实现,应该比上面这个方法更容易理解:
Dynamically loading external JavaScript and CSS files 

To load a .js or .css file dynamically, in a nutshell, it means using DOM methods to first create a swanky new "SCRIPT" or "LINK" element, assign it the appropriate attributes, and finally, use element.appendChild() to add the element to the desired location within the document tree. It sounds a lot more fancy than it really is. Lets see how it all comes together: 

function loadjscssfile(filename, filetype){ 
if (filetype=="js"){ //if filename is a external JavaScript file 
  var fileref=document.createElement('script') 
  fileref.setAttribute("type","text/javascript") 
  fileref.setAttribute("src", filename) 
} 
else if (filetype=="css"){ //if filename is an external CSS file 
  var fileref=document.createElement("link") 
  fileref.setAttribute("rel", "stylesheet") 
  fileref.setAttribute("type", "text/css") 
  fileref.setAttribute("href", filename) 
} 
if (typeof fileref!="undefined") 
  document.getElementsByTagName("head")[0].appendChild(fileref) 
} 

loadjscssfile("myscript.js", "js") //dynamically load and add this .js file 
loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file 
loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file 
分享到:
评论

相关推荐

    纯jquery+css绘画地图线路图插件Subway Map

    例如,你可以扩展插件以支持动态数据加载,或者添加自定义的交互事件。 使用Subway Map插件的基本步骤如下: 1. **引入依赖**:在HTML文件中引入jQuery库和Subway Map插件的JS文件。 2. **准备数据**:定义地图...

    jQuery Media Plugin Demo

    jQuery Media Plugin是一款专门为jQuery设计的多媒体插件,用于在网页中轻松集成音频、视频和图像等多媒体元素。这款插件的出现,极大地简化了开发者在HTML5时代处理多媒体内容的复杂性,使得开发者无需深入了解...

    jQuery摄像头插件jquery-webcam-plugin

    要使用`jQuery webcam plugin`,首先需要在项目中引入jQuery库以及插件的JavaScript和CSS文件。接着,需要在HTML中创建一个用于显示摄像头预览的元素,例如一个`div`,并为其添加特定的ID。然后,通过以下JavaScript...

    jQuery Mask Plugin输入框内容格式化插件.zip

    它基于流行的jQuery库,允许在网页上实现动态和灵活的输入格式控制。 在"jQuery Mask Plugin输入框内容格式化插件.zip"压缩包中,包含以下文件: 1. **js**:这是一个文件夹,通常包含JavaScript源代码。jQuery ...

    JQuery Cycle Plugin

    **jQuery Cycle Plugin** 是一个广泛使用的JavaScript库,专门用于创建动态和交互式的图像滑块、轮播和幻灯片效果。这个插件充分利用了jQuery的简洁API和强大的DOM操作功能,使得开发者能够轻松地在网站上实现各种...

    Ellipsis – Jquery Ellipsis Plugin

    jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。它使得JavaScript编程变得更加简单,尤其对于新手开发者而言。 jQuery Ellipsis插件的核心功能是实现文本的“省略号”...

    promptuMenu - jQuery Plugin

    2. **插件安装**: 首先,你需要将`jquery.promptu-menu.js`文件添加到你的HTML文件中,通常放在`&lt;head&gt;`或`&lt;body&gt;`标签的底部,确保它在所有依赖它的元素加载之后。同时,确保jQuery库已经正确引用。 3. **HTML结构...

    jQuery Plugin Prin YourPage

    jQuery Plugin Prin YourPage是一个基于JavaScript库jQuery的插件,专为网页打印设计。这个插件使得用户可以方便地选择并打印网页中的任何部分,而不是强制打印整个页面。在网页设计和开发中,有时我们需要提供一种...

    JQuery-tableDnD 拖拽的基本使用 Table Drag and Drop JQuery plugin

    `JQuery-tableDnD` 是一个用于实现表格元素拖放功能的 jQuery 插件,它使得用户可以通过鼠标拖拽来重新排序表格行,从而增强交互性和用户体验。在这个插件的帮助下,开发人员可以轻松地创建具有动态排序功能的数据...

    simple jQuery date-picker plugin 使用

    jQuery作为一个轻量级的JavaScript库,提供了丰富的插件来实现这些功能,其中“simple jQuery date-picker plugin”就是一个简单易用的选项。本文将详细介绍如何使用这个插件以及它的核心功能。 首先,我们需要理解...

    Shuffle Letters Effect: a jQuery Plugin

    "Shuffle Letters Effect: a jQuery Plugin" 是一个用于创建独特文字动画效果的jQuery插件,主要应用于网页设计中,特别是标题、LOGO和幻灯片等元素,为用户提供动态且吸引人的视觉体验。jQuery库因其简洁易用的API...

    jQuery plugin: Tooltip(转)

    1. **引入资源**:在HTML中添加jQuery库和Tooltip插件的JS及CSS文件。 2. **初始化插件**:在文档加载完成后(通常在`$(document).ready()`函数内),调用插件的初始化函数,指定选项,如是否自动从`title`属性获取...

    jQuery Lightbox Plugin--缩图查看插件,图片查看器

    开发者只需要在HTML中添加必要的标记和类,然后引入jQuery库和Lightbox Plugin的CSS及JS文件,即可实现图片的Lightbox效果。同时,Lightbox Plugin还支持自定义设置,如调整预加载图、改变导航箭头样式、设置图片...

    jQuery Rater Star Plugin

    1. 引入依赖:首先需要在HTML文件中引入jQuery库(`jquery.js`)和插件所需的CSS和JS文件(`jquery.rater.js`,`rater-star.css`等)。 2. 初始化插件:在DOM加载完成后,使用jQuery选择器找到需要添加评分功能的...

    jquery的Include file on demand plugin(插件)

    这个插件可以按你的需要加载javascript和css文件,也就是你不用在文件开始的时候就加载所有的js和css文件,加快文件在客户端的载入速度,当在需要的时候再加载所需的javascript和css文件。 其实这个插件的用法也挺...

    scrollToTop - jQuery Plugin

    例如,你可以根据页面滚动的距离动态调整按钮的显示,或者添加自定义的回调函数来实现更复杂的交互逻辑。 总之,`scrollToTop`插件是一个实用的jQuery工具,它极大地提升了用户的浏览体验。通过灵活的配置和自定义...

    flexigrid table jquery plugin

    综上所述,Flexigrid是一款强大且灵活的jQuery表格插件,它提供了丰富的功能和良好的用户体验,是构建动态数据表格的理想选择。在开发过程中,通过合理配置和扩展,可以满足各种复杂的数据展示需求。

    jquery1.4.js + jquery-validation.min.js

    本篇将深入探讨jQuery 1.4.js版本及其与jQuery Validation Plugin的结合使用,帮助开发者更好地理解和应用这两个核心组件。 一、jQuery 1.4.js:jQuery的里程碑版本 jQuery 1.4.js是jQuery库的一个重要里程碑,...

    jquery datatables 所需文件 官方下载的

    &lt;script type="text/javascript" charset="utf8" src="js/DataTables-1.10.4/js/jquery.dataTables.js"&gt; ``` 然后,对表格元素应用DataTables: ```javascript $(document).ready(function() { $('#example')....

Global site tag (gtag.js) - Google Analytics