以下情況是我遇到的問題。我得出了這樣的結論,即在執行Javascript時,通過觀察這種情況,jQuery一定不能做好準備。當jQuery沒有準備好時執行Javascript
場景:
我有注入的Javascript腳本標記到當前加載DOM頁的Java應用程序。以下Java代碼運行內嵌Javascript,其中插入jquery.js和myCode.js。 myCode.js持有我的Javascript代碼。
browser.executeJavaScript("var head= document.getElementsByTagName('head')[0];" +
"var script= document.createElement('script');script.type= 'text/javascript';script.src= 'jquery.js';head.appendChild(script);" +
"var script4= document.createElement('script');script4.type= 'text/javascript';script4.src= 'http://myCode.js';head.appendChild(script4);");
在這個Java應用程序,我也有一個buttonListener是火災myCode.js的函數的actionPerformed();
executedJS = browser.executeJavaScript("replaceAllLinks()");
遇到的問題是單擊按鈕時在上面一行出現nullPointerException異常。適應空情況導致無限循環而沒有任何改變。
while(executedJS == null) browser.executeJavaScript("replaceAllLinks()");
該問題的原因被精確定位至當jQuery的功能,方法是本內replaceAllLinks(); javascript函數。當jQuery,方法不存在,沒有問題可以觀察到。沒有一個nullPointerException引發的實例。
唯一可能的潛在問題是,jQuery庫不能完全加載,而replaceAllLinks();正在執行。如果jQuery方法和函數沒有被使用,那沒關係,一切都可以運行。
我的問題是,如何確保jQuery完全加載並可供使用?
您的$(document).ready在哪裏? – jmort253 2011-01-22 08:56:18