我在一个我没有服务器端访问权限的平台中工作。这意味着我不能将 javascript 文件直接加载到头部,只能加载到正文中。
这是我的负载方式:
function loadjscssfile(filename, filetype){
//http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
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('https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js','js');
loadjscssfile('http://redacted.com/data.php?rand='+Math.random(),'js');
loadjscssfile('https://raw.github.com/aakilfernandes/jquery.inject/master/jquery.inject.js?rand='+Math.random(),'js');
但是,我加载的第三个 javascript 文件(一个 jQuery 插件)需要 jQuery。
当我加载页面时出现此错误(在 Chrome 中)
Uncaught ReferenceError: jQuery is not defined
我的倾向是我的插件在 jQuery 之前加载。因为如果我刷新页面(当 jQuery 被缓存时),错误就会消失。但是,即使没有缓存 jQuery,我也需要它来工作。想法?