以下情况是我遇到的问题。我得出了这样的结论,即在执行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