我正在一個平臺內工作我沒有服務器端訪問。這意味着我無法直接將javascript文件加載到頭部,只能加載正文。jQuery插件之前加載jQuery
以下是我做我的負荷:
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沒有被緩存,我也需要這個工作。思考?
我想我發現類似的問題。請參閱:http://stackoverflow.com/questions/756382/bookmarklet-wait-until-javascript-is-loaded –