我正在製作一對小部件,這些小部件可以單獨包含或作爲一對包含在內,並且沒有特別的順序。我確保jQuery是加載通過使用這個腳本:檢查是否包含jQuery
if (typeof jQuery == 'undefined') {
//alert("about to load jquery");
var esm_script_tag = document.createElement('script');
esm_script_tag.setAttribute("type","text/javascript");
esm_script_tag.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js")
esm_script_tag.onload = main; // Run main() once jQuery has loaded
esm_script_tag.onreadystatechange = function() { // Same thing but for IE
if (this.readyState == 'complete' || this.readyState == 'loaded') main();
}
document.getElementsByTagName("head")[0].appendChild(es_script_tag);
}
else{
main();
}
在一個腳本,它觸發功能main()
和其他main2()
。問題是,一旦第一個腳本運行,它開始包括jQuery。當第二個運行時,jQuery尚未加載,但不會再加載它以啓動功能main2()
。
有沒有更好的方法來包含jQuery?有沒有辦法讓我的小部件檢查jQuery是否處於被加載的狀態並保持到它準備好?
感謝您的回覆。
如果你在文檔準備好了這個測試呢? – DOK 2012-01-10 21:11:11
@DOK這不是多餘的嗎? – Blazemonger 2012-01-10 21:14:25
但是$(document).ready在jQuery加載之前不可用。 – emachine 2012-01-10 21:14:29