代码之家  ›  专栏  ›  技术社区  ›  Anil Namde

帮助我了解javascript:void(空)

  •  11
  • Anil Namde  · 技术社区  · 14 年前

    有人能帮我用这个javascript吗:void(空) 我发现它用于链接按钮如下

    <a onclick="ProcessResponse()" href="javascript:void(null)" >Accept Data</a>
    
    4 回复  |  直到 10 年前
        1
  •  5
  •   Sarfraz    14 年前

    基本上发生的是 onclick 函数 ProcessResponse() 被调用,并且 href 设置为 javascript:void(null) 禁用 违约行为 链接的。

    大多数开发人员也只是习惯于编写:

    <a onclick="ProcessResponse(); return false;" href="#" >Accept Data</a>
    

    例子:

    假设我们有了这个链接:

    <a onclick="ProcessResponse(); return false;" href="http://www.google.com" >Accept Data</a>
    

    注意 HREF 设置为 www.google.com 但是当你点击这个链接时,它会简单地调用 进程响应() 功能,不会转到 www. Google 因为 return false 放后 进程响应() 禁用将要访问的链接的默认行为 www. Google . 你发布的链接也是如此。

        2
  •  16
  •   Andy E    12 年前

    void 是一个javascript运算符,但有时会被误认为是一个函数,因为后面通常使用括号。目的 无效 是在不返回值的情况下计算表达式。因此,任何表达式都可以 无效 Ed,不一定是 null 你经常看到 void(0) 或者不太频繁, void 0 .

    当你使用 javascript: 在一个 href 属性,将计算以下表达式并返回其结果。这可以通过在浏览器地址框中输入以下内容看到:

    javascript:prompt("test");
    

    在显示的框中键入任何内容,然后按Enter/单击OK。您会注意到页面将消失,您输入的任何内容都将出现。现在看看如果我们添加 void 0; :

    javascript:prompt("test"); void 0;
    

    单击提示中的“确定”后,不会发生任何情况。那是 无效0 他的手艺,又回来了。 undefined 所以浏览器对此毫无作用。这适用于 HREF 也在链接中(请随意尝试)。整件事甚至可以写成 javascript:void prompt("test"); .

    正如其他人提到的,最好使用 return false; 从事件处理程序而不是使用 无效 在HREF中。事实上,建议不要使用 JavaScript: HREF 属性。

        3
  •  4
  •   Jamiec    14 年前

    javascript:void(null) 什么也不做。

    注意,onclick事件处理程序中有一个javascript调用——它可以做一些事情(我猜它通过处理响应来接受数据;)。

        4
  •  1
  •   Tgr    14 年前

    追加 void(0) 到javascript指令是使用 javascript: 运行代码的伪URL。如果省略了此操作,脚本将返回除 未定义 ,它将被视为传递给 document.write -也就是说,浏览器将导航到一个空页面。

    这个技巧有一些有效的应用程序(也就是说,书签应该总是这样结束),但是在您给出的示例中,它是错误的,因为其他人已经解释了原因。