Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery未就绪时执行的Javascript_Javascript_Jquery - Fatal编程技术网

jQuery未就绪时执行的Javascript

jQuery未就绪时执行的Javascript,javascript,jquery,Javascript,Jquery,下面的场景是我遇到的一个问题。通过观察这个场景,我得出结论,当Javascript执行时,jQuery不能准备就绪 场景: 我有一个Java应用程序,它将Javascript脚本标记注入当前加载的DOM页面。下面的Java代码运行内联Javascript,它插入jquery.js和myCode.jsmyCode.js保存我的Javascript代码 browser.executeJavaScript("var head= document.getElementsByTagName('head'

下面的场景是我遇到的一个问题。通过观察这个场景,我得出结论,当Javascript执行时,jQuery不能准备就绪

场景:

我有一个Java应用程序,它将Javascript脚本标记注入当前加载的DOM页面。下面的Java代码运行内联Javascript,它插入jquery.jsmyCode.jsmyCode.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,它在ActionPerformed()中的myCode.js中触发一个函数

当单击按钮时,遇到的问题是上面一行的nullPointerException。适应空情况会导致无休止的循环,而不会发生任何更改

while(executedJS == null) browser.executeJavaScript("replaceAllLinks()");
问题的原因是当jQuery函数、方法出现在replaceAllLinks()中时;javascript函数。当jQuery没有方法时,就看不到任何问题。未引发一个nullPointerException实例

唯一可能的潜在问题是jQuery库在replaceAllLinks()时没有完全加载;正在被处决。如果jQuery方法和函数没有被使用,那也没关系,一切都正常运行


那么,我的问题是,如何确保jQuery已完全加载并可供使用?

依赖jQuery的每个脚本都应该包含在一个DOM就绪函数中。此类功能通常采用以下形式:

$(document).ready(function() {
    /* code here */
});
实现同样目标的捷径是:

$(function() {
    /* code here */
});
以下是有关ready方法的更多信息的文档:

每个依赖jQuery的脚本都应该包含在一个DOM就绪函数中。此类功能通常采用以下形式:

$(document).ready(function() {
    /* code here */
});
实现同样目标的捷径是:

$(function() {
    /* code here */
});
以下是有关ready方法的更多信息的文档:

在末尾声明一些全局变量
jquery.js,例如

window.jQueryIsLoaded=true;
并在使用jQuery之前检查此变量


忘记这一点,请参见下面Salman A的评论,这应该是正确的答案。
在结尾声明一些全局变量
jquery.js,例如

window.jQueryIsLoaded=true;
并在使用jQuery之前检查此变量


忘记这一点,看看下面萨尔曼A的评论,应该是正确的答案。
你的$(文档)在哪里。准备好了吗?你的$(文档)在哪里。准备好了吗?事实上,你可以检查一下jQuery的类型!='未定义的“。但是在这种情况下,你有多确定jQuery是完全下载的?好的,我查看了jQuery.js,如果jQuery是已知的,那么必须是完整的。奇怪的是,jQuery是完全加载的……但是问题仍然发生……所以我错了?事实上,你可以检查jQuery的
类型!='未定义“
。但在这种情况下,您有多确定jQuery是否已完全下载?好的,我查看了jQuery.js,如果知道jQuery,则必须完整。奇怪的是,jQuery已完全加载……但问题仍然存在……所以我错了?