importScripts用于在一个js里面包含其他的js文件。相当于C里面的#include。利用importScripts这个强大的利器,我们就可以像C/C++/Java一样写js了。比如我们用js写了几个文件A.js,B.js,C.js,它们分别位于不同的路径下面。当我们在D.js中需要引入上面3个js文件的时候,就需要importScripts这个强大的利器了:
// D.js:
importScripts("script/A.js", "B.js", "http://helooooooo/C.js");
或者:
importScripts("script/A.js");
importScripts("B.js");
importScripts("http://helooooooo/C.js");
在未使用importScripts的时候我通常是这样引入js代码的:
function includeScript(file) {
document.write('<script type="text/javascript" src="'+file+'"></script>');
}
includeScript("script/A.js");
includeScript("B.js");
includeScript("http://helooooooo/C.js");
cheungmine 2011-11
- if(!importScripts){
- var importScripts=(function(globalEval){
- var xhr=new XMLHttpRequest;
- return function importScripts(){
- var
- args=Array.prototype.slice.call(arguments)
- ,len=args.length
- ,i=0
- ,meta
- ,data
- ,content
- ;
- for(;i<len;i++){
- if(args[i].substr(0,5).toLowerCase()==="data:"){
- data=args[i];
- content=data.indexOf(",");
- meta=data.substr(5,content).toLowerCase();
- data=decodeURIComponent(data.substr(content+1));
- if(/;\s*base64\s*[;,]/.test(meta)){
- data=atob(data);
- }
- if(/;\s*charset=[uU][tT][fF]-?8\s*[;,]/.test(meta)){
- data=decodeURIComponent(escape(data));
- }
- }else{
- xhr.open("GET",args[i],false);
- xhr.send(null);
- data=xhr.responseText;
- }
- globalEval(data);
- }
- };
- }(eval));
- }