JavaScript 错误

学习如何解决与预防JavaScritp错误。


几乎每个Joomla扩展都使用了JavaScript,依赖于jQuery这样的库。在一个页面上使用不同的脚本可能引起它们之间的冲突。

如何检查错误?

如果你在网页中点击某个元素没有像你期望的那样工作,或者动画停止了运行,这可能就是发生了脚本错误。在这种情况下,浏览器会终止脚本运行。

下面的开发者工具可以向你展示脚本错误,包括错误信息,文件,行数和导致错误的代码。

开发者工具 描述
浏览器调试控制台 一种方式就是在页面中出错的地方使用浏览器的调试控制台。它将帮助你鉴定脚本和web服务器上其他相关文件。
Firebug和其他浏览器上的WDT Firebug for Firefox允许你检查和非破坏性地编辑HTML代码,它还提供了强大的JavaScript调试工具。其他浏览器,比如Chrome、Safari或Opera都有类似的工具。

如何解决错误?

通常,错误是由一个或多个扩展引起的。如果你在一个网页上检测到了JavaScript错误,你需要找到它的根源。

  1. 如果确定是扩展的问题,尝试禁用扩展,确保你的页面无错误地运行。
  2. 如果错误不再有,你便已了解是扩展引起的冲突。
  3. 现在,你可以查找扩展配置选项/extensions configuration option,通过启动或禁止加载JavaScript库(如jQuery)来解决错误。

Prevent loading jQuery multiple times in Joomla 2.5?

There is an ongoing discussion in the Joomla community on how to prevent loading jQuery multiple times across extensions. We have already taken steps and measures by implementing a widely accepted solution. We register through JApplication whether jQuery is loaded or not. In case a 3rd party extension loads the jQuery library, you can use the following code snippet to prevent our ZOO extension, Widgetkit or Warp theme from loading it twice.

// load jQuery, if not loaded before
if (!JFactory::getApplication()->get('jquery')) {
    JFactory::getApplication()->set('jquery', true);
    // add jQuery
    ...
}

NOTE You can also get in touch with the 3rd party extension developer and kindly ask them to implement this.