我想寫一個書籤,涉及到動態添加兩個腳本標籤,一個用於jQuery,另一個用jQuery寫的js腳本。我遇到的問題是,即使我首先添加jQuery腳本,js腳本也不能被讀取,因爲瀏覽器說jQuery是未定義的。我知道錯誤在於當瀏覽器添加我的js腳本時,jQuery仍然被加載,結果,瀏覽器在執行js腳本時無法識別js腳本中的jQuery。無論如何,延遲添加js腳本標籤,直到jQuery完全加載後?延遲JavaScript的加載,直到jQuery被正確加載
謝謝!
我想寫一個書籤,涉及到動態添加兩個腳本標籤,一個用於jQuery,另一個用jQuery寫的js腳本。我遇到的問題是,即使我首先添加jQuery腳本,js腳本也不能被讀取,因爲瀏覽器說jQuery是未定義的。我知道錯誤在於當瀏覽器添加我的js腳本時,jQuery仍然被加載,結果,瀏覽器在執行js腳本時無法識別js腳本中的jQuery。無論如何,延遲添加js腳本標籤,直到jQuery完全加載後?延遲JavaScript的加載,直到jQuery被正確加載
謝謝!
你的腳本是怎麼樣的?
您應該將您在腳本中執行的所有操作都封裝在函數中,然後您可以從該文檔調用該函數。
例如把一切都放在功能myJqueryFunction()
然後調用它:
$(document).ready(function(){
myJqueryFunction();
});
,使你的代碼只執行一次,jQuery的滿載。
或者,您應該能夠使用Ajax來執行腳本,但請記住,腳本必須與文檔位於同一個域中,否則它將無法訪問DOM。
$(document).ready(function(){
$.ajax("url to your script", {dataType:"script"});
});
,大多數JavaScript程序員最終做的第一件事就是加入一些代碼,以>程序,與此類似:
window.onload = function(){ alert("welcome"); }
內部是要運行右邊的代碼當頁面被加載時。然而,問題是,直到所有圖像完成下載(這包括橫幅廣告),Javascript代碼纔會運行。首先使用window.onload的原因是,當您第一次嘗試運行代碼時,HTML「文檔」尚未完成加載。
希望此信息有助於從JQuery tutorial中剔除!
編號.ready()方法通常與
屬性不兼容。取自http://api.jquery.com/ready。 – stefgosselin無論如何鼓勵你在你的新帳戶,但如果你是一個長時間的用戶會下降。 – stefgosselin
您可以使用像LABjs
這樣的腳本加載器:http://labjs.com/。它支持使用wait
推遲其他腳本。
$LAB
.script("jquery.js")
.wait()
.script("script.js");
由於跨域問題,我無法使用ajax。另外我不認爲$(document).ready會工作,因爲問題是我的腳本在jQuery完成加載前加載,所以我的腳本中的函數jQuery沒有被正確讀取 – Andrew
是的,事情是函數中的代碼直到函數被執行時纔會被解析,並且$(document).ready()總是看起來可以工作,但最好的建議是把它放在頁面的最後。你有沒有發佈網頁的地方?在這種情況下,我可以看看。 –