【发布时间】:2012-12-21 03:54:09
【问题描述】:
我正在使用 AnySlider jQuery 插件,它动态读取 URL 中的哈希并通过 jQuery 选择页面上的项目。问题是最终用户可以在到达http://mydomain.com/#!demos/slider 时破坏插件。
有没有办法测试选择器是否有效,而不是让 jQuery 崩溃(内置函数或正则表达式)?请参阅这个尝试执行 $('#!demos/slider') 并崩溃的 jsFiddle 示例:http://jsfiddle.net/PvY2b/
$('#!demos/slider') <= Uncaught Error: Syntax error, unrecognized expression: #!demo/slider
【问题讨论】:
-
您不能自己捕获错误并向用户显示适当的错误消息吗?
-
我做了一个 try/catch 但似乎是一个懒惰的黑客。 jQuery 中是否有内置函数或在让它崩溃之前进行测试?也许是正则表达式?
-
我第一次看到被称为“懒惰黑客”的 try/catch
-
@TruMan1:为什么这是一个懒惰的黑客?似乎这正是
exceptions的用途。为什么要重新发明轮子? jQuery 已经在为您测试它,它让您知道存在问题的方式是抛出异常。 -
你应该在任何一天使用 if 语句而不是 try/catch ......否则这是一个懒惰的黑客攻击。
标签: jquery jquery-selectors anythingslider