js方法失败(抛出异常?),哪个firebug不报告

发布于 2024-11-11 03:13:12 字数 716 浏览 2 评论 0原文

下面的js方法没有返回,但firebug报告没有异常:

function test_contains_doesNotBailWithoutException() {
$.contains(document.getElementById('navlinks', undefined));

// This line should be reached, or you should get an exception message in Firebug.
return true;
} 

其中navlinks是页面上存在的东西,$来自jquery 1.5.1。该方法在调用 contains 方法时退出(我假设是抛出),在 jquery1.5.1 的第 4639 行中:

return !!(a.compareDocumentPosition(b) & 16);

其中 a 是 navlinks div,b 是未定义的。 firebug不应该在控制台报告异常吗?

可以肯定的是,在 Firebug 控制台中运行以下命令既不会产生错误消息,也不会返回结果:

return document.getElementById('navlinks').compareDocumentPosition(undefined);

编辑:我正在使用 Firefox 4.0.1 和 Firebug 1.7.1。

The following js method does not return, yet firebug reports no exception:

function test_contains_doesNotBailWithoutException() {
$.contains(document.getElementById('navlinks', undefined));

// This line should be reached, or you should get an exception message in Firebug.
return true;
} 

where navlinks is something that exists on the page, and $ is from jquery 1.5.1. The method exits (throws, I assume) while calling the contains method, in line 4639 of jquery1.5.1:

return !!(a.compareDocumentPosition(b) & 16);

where a is the navlinks div and b is undefined. Shouldn't firebug report an exception in the console?

To be sure, running the following in the firebug console yields neither an error message nor a return result:

return document.getElementById('navlinks').compareDocumentPosition(undefined);

EDIT: I'm using Firefox 4.0.1 and Firebug 1.7.1.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻安 2024-11-18 03:13:12

是的,应该有一个例外;我当然得到了一个 JavaScript 版本:

Error: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOM3Node.compareDocumentPosition]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: javascript:alert(document.body.compareDocumentPosition(undefined)) :: <TOP_LEVEL> :: line 1"  data: no]

或者来自 jQuery 版本的相同内容(在你的示例中,它在错误的位置有一个括号...这并不重要,因为缺少的参数自然会被 填充无论如何都是未定义的):

Error: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOM3Node.compareDocumentPosition]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js :: <TOP_LEVEL> :: line 16"  data: no]

Yes, there should be an exception; I certainly get one with either the JavaScript version:

Error: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOM3Node.compareDocumentPosition]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: javascript:alert(document.body.compareDocumentPosition(undefined)) :: <TOP_LEVEL> :: line 1"  data: no]

or the same thing from the jQuery version (which has a bracket in the wrong place in your example... not that it matters since the missing argument will naturally get filled in with undefined anyway):

Error: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOM3Node.compareDocumentPosition]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js :: <TOP_LEVEL> :: line 16"  data: no]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文