zoukankan      html  css  js  c++  java
  • javascript:void(0)

    javascript:void(0)

    Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

    void 操作符用法格式如下:

    1. javascript:void (expression)

    2. javascript:void expression

    expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。

    你以使用 void 操作符指定超级链接。表达式会被计算但是不会当前文档处装入任何内容。

    示例-点击超链接不跳转

    1:<a href="####"></a>

    2:<a href="javascript:void(0)"></a>

    3:<a href="javascript:void(null)"></a>

    4:<a href="#" onclick="return false"></a>

    点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP(实际测试发现 滚动条会滚到顶端)而以上四种方法仅仅表示一个死链接都表示是一个死链接不会跳转也不会返回到顶部.

    示例-为什么location.href不自动跳转?

    <a href="javascript:void(0)" onclick="delete('123')">删除</a>

    function delete(id){

       if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {

           location.href="/delete.jsp?id=" + id;

       }

    }

    以上代码不管如何检查都没有任何问题,而location.href="/delete.jsp?id=" + id;在别的地方都好使,为什么这段代码就行呢?

    原因是那个void(0)把代码改成:

    <a href="javascript:delete('123')">删除</a>function delete(id) {

       if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {

           location.href="/delete.jsp?id=" + id;

       }

    }

    我们发现,页面立即就跳转了,能正常删除相应的数据.为什么呢?

    因为void是一个操作符,会计算一个表达式,但不会返回值,当然也不会改变当前页面的任何内容,也就不会正常的跳转.

    说明

    void 运算符对表达式求值,并返回 undefined。在希望求表达式的值,但又不希望脚本的剩余部分看见这个结果时,该运算符最有用。

    链接(href)直接使用javascript:void(0)在IE中可能会引起一些问题,比如:造成gif动画停止播放等,所以,最安全的办法还是使用“#”。为防止点击链接后跳转到页首,onclick 事件 return false即可。

  • 相关阅读:
    cmd常用命令
    快捷键
    leetcode:Sort List(一个链表的归并排序)
    leetcode:Merge Two Sorted Lists(有序链表的归并)
    leetcode:Search for a Range(数组,二分查找)
    leetcode:Search a 2D Matrix(数组,二分查找)
    实时操作系统与分时操作系统
    第四章函数作业题,函数模板
    第四章函数作业题,函数的重载
    第四章函数作业题,内置函数
  • 原文地址:https://www.cnblogs.com/qinge/p/4825394.html
Copyright © 2011-2022 走看看