动态加载并运行js文件或者代码段

以前写过动态加载js文件的文章,但总是觉得不是很完美,有时候载入的js文件没法运行,今天发现一个动态载入js代码块的方法,载入的代码块可以运行。

var scriptFrag = document.createElement("script");
scriptFrag.text="alert('ss');" //你的代码;
document.body.appendChild(script);

注意scriptFrag的代码块是放在text这个属性里面,我以前一直没有发现要这么写script里面的内容。上面的代码在火狐里面会弹出两次alert,也就是执行了两次,不知道是什么原因。

动态加载javascript文件

Only for IE

/*Javascript 动态加载*/
var loadJS, loadjs;
loadJS=loadjs=function(src,id,callback){
	var scriptId = document.getElementById(id);
	if (scriptId){
		if(callback) callback();
	}else{
		var s = document.createElement("script");
		s.id = id;
		s.type = "text/javascript";
		s.src = src;
		s.onload = s.onreadystatechange = function(){
			if (s.readyState && s.readyState != 'loaded' && s.readyState != 'complete'){
				return;
			}
			s.onreadystatechange = s.onload = null;
			//当前文件加载完毕,触发回调事件
			if (callback) callback();
		};
		var head = document.getElementsByTagName('head').item(0);
		head.appendChild (s);
	}
}
loadJS("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js", "jquery", function(){alert($("#sdf").length);});