【问题标题】:Preventing jQuery errors防止 jQuery 错误
【发布时间】:2012-02-06 21:37:10
【问题描述】:

我是一名 Wordpress 插件开发人员,我有一个关于 jQuery 错误的快速问题。

我的插件让用户能够在他们的网站上创建幻灯片,这包括加载 jQuery 和它自己的脚本。这一切都是使用正确的 Wordpress 功能等正确完成的。这里没有问题。

然而,其他插件通常不使用正确的功能,这会导致 jQuery 在一个页面上被加载两次,有时甚至是 3 次。另一个问题是那些一直在自己修改 jQuery 插件的用户,例如,引用了一个不存在的函数,结果引发 jQuery 错误并破坏了我的插件(幻灯片)功能。

只是想知道是否有任何我可能不知道的解决方法。是否可以强制函数忽略错误或类似的东西?试图向用户解释插件脚本没有错,但由于外部错误而遭受痛苦,真是太痛苦了。当用户完全不熟悉 Javascript 或 jQuery 时,排除故障也可能非常困难。

最重要的是,每天都必须处理它真的很痛苦。可以肯定的是,jQuery 被多次加载是最常见的错误,最好尽可能多地尝试并消除它,从而花更少的时间进行故障排除,花更多的时间进行开发。

提前致谢。

【问题讨论】:

  • 我们可以看看一些例子和代码
  • 不可能给出具体的例子。除了不止一次加载 jQuery 之外,其他类型的错误可能是脚本引用了不存在的函数。就像脚本确实 jQuery('.element').myCustomFunction(); 一样,只有 'myCustomFunction()' 并不真正存在。通常用户会安装其他基于 jQuery 的插件并在外部引用它们的函数,但是当他们决定摆脱插件时无法删除它们,因此我们会留下对未定义函数的引用。

标签: javascript jquery wordpress jquery-plugins


【解决方案1】:

没有办法克服多个 jQuery 加载,每次加载都会初始化 jQuery 对象,因此会删除您扩展 jQuery 对象的任何函数和属性。

试着告诉他们是什么……

您可以使用window.onerror 来捕获脚本错误(我不知道它对您有什么帮助):

window.onerror = function myErrorHandler(errorMsg, url, lineNumber) { 
    // Code...
    };

window.onerror on MDN

【讨论】:

    【解决方案2】:

    你可以使用:

    try {}
    catch {}
    

    如果您强制所有有问题的代码在 try {} 中运行,则错误不应停止其他脚本。这仍然无法解决 jQuery 的双重/三重负载和/或插件的滥用......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      • 2013-11-13
      • 2011-06-16
      相关资源
      最近更新 更多