使用void()时未捕获的SyntaxError:意外的令牌)

时间:2013-07-28 17:15:15

标签: javascript

我收到此错误,我已将其缩小为:

<a href="javascript:void();" onclick="myFunction();">aaa</a>

这行代码现在是我的源代码中唯一的东西,但我仍然在标题中得到错误。知道为什么会这样吗?

即使用适当的HTML元素(html,head,body等)包围,我仍然会抛出错误。如果我包含

,则错误会显示在Chrome开发者控制台中并通过警报显示
window.onerror
头标记中的

功能。当myFunction()方法实际存在时也会发生这种情况。据我所知,上述陈述完全没有错。

3 个答案:

答案 0 :(得分:32)

使用

<a href="javascript:void(0);" onclick="myFunction();">aaa</a>

void需要一个参数。

关于使用void(0)或其他技术here进行了有趣的讨论。

答案 1 :(得分:4)

是因为无效takes one argument。 你想要:

<a href="javascript:void(0);" onclick="myFunction();">aaa</a>

答案 2 :(得分:2)

void是一个运算符,而不是一个函数。它需要一个表达式作为其操作数。 ()不是有效的表达式。正确的语法是:

<a href="javascript:void 0;" onclick="myFunction();">aaa</a>

您可以将括号括在0左右,但不一定非必要,就像在03 + 0时不需要使用括号一样。