jquery动态加载js/css文件方法

jquery动态加载js/css文件方法

先来看jquery自带的getSrcript文件

方法
$.getScript(url,callback)

实例

var testVar = 'New JS loaded!';
alert(testVar); 
function newFun(dynParam) {
	alert('You just passed '+ dynParam + ' as parameter.');
}

动态调用方法

HTML代码

<head>
    <script type="text/javascript" src="../jquery.js"></script>
    <script type="text/javascript">
        $(function(){
            $('#loadButton').click(function(){
                $.getScript('new.js',function(){
                    newFun('"Checking new script"');//这个函数是在new.js里面的,当点击click后运行这个函数
                });
            });
        });
    </script>
</head>

<body>
	<button type="button" id="loadButton">Load</button>
</body>

上面的只能动态加载js代码,但不能加载css,后来自己写了一个可加载js与css的程序。

代码如下

$.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' " : " language='javascript' type='text/javascript' ";
            var link = (isCSS ? "href" : "src") + "='" + $.includePath + name + "'";
            if ($(tag + "[" + link + "]").length == 0) document.write("<" + tag + attr + link + "></" + tag + ">");
        }
    }
});
//e.g.
$.include(['hdivbox.js', 'pop_win.css']);

操作DOM元素

获取单个元素

var obj=document.querySelector("li");

获取多个元素

var obj=document.querySelectorAll("li");
for(var i=0; i<obj.length; i++) {
    console.log(obj[i].innerText);
}

类名操作

//获取页面中元素
var  div_obj=document.querySelector("div");
var  add_btn=document.querySelector(".add");
var  remove_btn=document.querySelector(".remove");
var  toolge_btn=document.querySelector(".toggle");
var  contains_btn=document.querySelector(".contains");
//添加类名
add_btn.onclick=function() {
    div_obj.classList.add("bg");
}
//移除类名
remove_btn.onclick=function () {
    div_obj.classList.remove("bg");
}
//切换类名
toolge_btn.onclick=function() {
    div_obj.classList.toggle("bg");
}
//是否包含类名
contains_btn.onclick=function() {
    console.log(div_obj.classList.contains('bg'));
}

自定义属性

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		.nav {
			 height: 50px;
			 background-color: orange;
		}
	</style>
</head>
<body>	
	 <div class="nav"  data-name-test="zs" data-age="123">123</div>
	 <script type="text/javascript">	 	
	 	var data=document.querySelector(".nav").dataset;
	 	console.log(data);// => DOMStringMap {nameTest: 'zs', age: '123', test: 'abc', TestAbc: '123', hh: '呵呵'}
	 	// var  test=document.querySelector("div").getAttribute("class");	 	
	 	//设置	 	
	 	var  nav=document.querySelector(".nav");
	 		 nav.dataset.test="abc";
	 		 nav.dataset.TestAbc="123";
	 		 nav.dataset["hh"]="呵呵";
	 </script>
</body>
</html>

多媒体标签

<!-- 多媒体设置 -->
<!-- <video src="code/多媒体标签/trailer.mp4" controls autoplay loop></video> -->
<!-- 
	trailer.mp4
    trailer.ogg
    trailer.WebM 
-->
<!-- 
    <video src="trailer.mp4"></video>
    <video src="trailer.ogg"></video>
    <video src="trailer.WebM"></video> 
-->
<!-- 
    <video>
        <source src="code/多媒体标签/trailer.mp4">
        <source src="trailer.ogg">
        <source src="trailer.WebM">
    </video> 
-->
<video src="code/多媒体标签/trailer.mp4" controls autoplay="autoplay"></video>

文件读取

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type="file" name="">
	<script type="text/javascript">		
		var input=document.querySelector("input");
		input.onchange=function(){
			//获取到文件
			var file=this.files[0];
			//开始读取,创建读取器
			var  reader=new FileReader();
			//开始读取
			reader.readAsText(file);
			//获取读取的结果
			//当文件读取完成后,才可以获取文件信息内容
			reader.onload=function() {
				console.log(reader.result);
			}			
		}
	</script>
</body>
</html>

获取地理位置

//只能获取一次当前地理位置信息
// window.navigator.geolocation.getCurrentPosition(success,error);
// function success (msg) {
// 	 console.log(msg);
// }

// function error (msg) {
// console.log(msg);
// }
// 

//实时获取地理位置:
window.navigator.geolocation.watchPosition(success,error);
function success (msg,position) {
    console.log(msg);
    console.dir(position);
}

function error (msg) {
    console.log(msg);
}

canvas

//获取canvas画布对象
var canvas =document.querySelector("canvas");
//获取绘图上下文
var ctx=canvas.getContext("2d");
//先落笔
ctx.moveTo(100, 100);
// 连线
ctx.lineTo(300, 100);
//描边
ctx.stroke();
ctx.beginPath();
//带颜色的横线
ctx.moveTo(100, 150);
ctx.lineTo(300, 150);
ctx.strokeStyle="red";  //红色的线
ctx.lineWidth="20";   //设置线宽
ctx.stroke();

闭合路径

//获取canvas画布对象
var canvas =document.querySelector("canvas");
//获取绘图上下文
var ctx=canvas.getContext("2d");

ctx.moveTo(100, 100);
ctx.lineTo(100, 200);
ctx.lineTo(200, 200);
// ctx.lineTo(100,100);
//闭合路径
ctx.closePath();
// ctx.stroke();
ctx.fillStyle="red";
ctx.fill();

绘制矩形

//获取canvas画布对象
var canvas =document.querySelector("canvas");
//获取绘图上下文
var ctx=canvas.getContext("2d");
ctx.rect(100, 100, 200, 200);
ctx.stroke();
ctx.clearRect(0, 0, 600, 400);
上一篇:canvas小程序


下一篇:canvas apps 连接cds太慢了,改善方法