我正在开发一个JavaScript和jQuery的网站。有时当我刷新时,我只是在萤火虫中得到不同的随机错误。这是怎么回事?什么是随机Javascript错误?
编辑:我发现了错误,如一个变量没有定义,当清楚它和工作,而当我再次刷新,错误消失..
使用Firefox浏览器V3.5.5萤火虫V. 1.5.3和我主要使用jQuery 1.4.2
我正在开发一个JavaScript和jQuery的网站。有时当我刷新时,我只是在萤火虫中得到不同的随机错误。这是怎么回事?什么是随机Javascript错误?
编辑:我发现了错误,如一个变量没有定义,当清楚它和工作,而当我再次刷新,错误消失..
使用Firefox浏览器V3.5.5萤火虫V. 1.5.3和我主要使用jQuery 1.4.2
确定。虽然它或多或少不能给出一个合理的解决方案,这样一个一般性的问题,我就加我的2美分的价值:
一个‘未定义的变量’错误的可能来源是包括一些脚本,可能会也可能不会总是以相同的顺序加载和执行。如果你在一个脚本中定义了一个变量(我们称之为脚本declare.js
)并在另一个脚本中使用它(比如说use.js
),并且use.js
在declare.js
之前执行,那么你会得到这样的错误。如果脚本以其他方式执行,则一切都会显示正常。
如果你对这个话题感兴趣,可以看看例如Steve Souders的书Even faster web sites,由O'Reilly出版。更具体地说,查看关于非阻塞脚本加载的章节。
非常有趣,感谢您的输入。 – 2010-04-13 17:11:17
最常见的原因是,您正试图在之前执行Javascript DOM已加载,因此在DOM树中可用的所有HTML元素之前,这又可能导致像document.getElementById(id)
和jQuery的$(selector)
这样的简单调用可能返回未定义的元素。有时它的作用是纯粹的巧合和时间问题。
您需要确保任何应该在页面加载期间执行的Javascript/jQuery代码,并且依赖于DOM树中元素的可用性,在加载DOM后之后也确实执行了。在普通的香草JS你可以这样做:
window.onload = function() {
document.getElementById(someId);
}
和jQuery中:
$(document).ready(function() {
$(someSelector);
});
你能否提供一些上下文,比如示例代码和示例错误....否则,任何人都无法提供帮助。 – Kinlan 2010-04-13 16:50:44
你有什么错误,在哪里? – animuson 2010-04-13 16:50:53
*需要更多信息!喜欢;网页试图做什么?什么js正在运行?什么是错误?你运行的是哪个版本的firebug/jquery/firefox? – Mathew 2010-04-13 16:51:48