zoukankan      html  css  js  c++  java
  • 阻止超链接跳转

    1. 链接的onclick事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接);

    2. 假设链接中同时存在href与onclick,如果想让href属性下的动作不执行,onclick必须得到一个false的返值

    3. 如果页面过长有滚动条,且希望通过链接的 onclick事件执行操作。应将它的 href属性设为 javascript:void(0);  ,而不要是 #,这可以防止不必要的页面跳动;

    4. 如果在链接的 href属性中调用一个有返回值的函数,当前页面的内容将被此函数的返回值代替;

    5. 在按住Shift键的情况下会有所区别。

    6. 今天我遇到的问题,在IE6.0里以href的形式访问不到parentNode。

    7. 尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

     

    关于:void

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

    void 操作符用法格式如下:

    1. javascript:void (expression)

    2. javascript:void expression

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

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

     

    关于 return false

     

    通常, event.preventDefault()都会放在event handler的第一行。
    这样的话, 假设在event handler中有一个JavaScript error,
    那么, 放在first lineevent.preventDefault()就可以阻止submit行为, console还可以report这error.

    而, return false是放在event handler的最后一行的。
    并且, 他是相当于event.preventDefault()event.stopPropagation(), 如果我们想阻止bubbling的话, 就可以用return false.

    更重要的是, return false只能用于DOM Level 0 Event handler,DOM Level 2 Event Handler是没用的, 

    1// get the anchors 

    var anchors = document.querySelectorAll("a");
    3 var a1 = anchors[0];
    4 var a2 = anchors[1];
    5 // DOM Level 0 Event Handler
    6 a1.onclick = function(event) {  return false;};
    7 // DOM Level 2 Event Handler
    8 a2.addEventListener("click", function() {  return false;}, false);

    而, event.preventDefault()2者都兼容。

     

    综上, 当然是推荐用event.preventDefault()啦。

     

    几种格式

     

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

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

    3:<a href="javascript:"></a>

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

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

  • 相关阅读:
    Autofs
    markdown 基本语法
    Why Linux Doesn’t Need Defragmenting
    How to reconfigure installed dpkg package (tzdata, locales)
    weblogic性能监控
    exec
    在Oracle中查询表的大小
    hadoop主要概念的理解和学习
    ORACLE ASM中查询表空间使用情况、数据文件路径、裸设备磁盘总大小剩余大小
    linux 查看内存和cpu占用比较多的进程
  • 原文地址:https://www.cnblogs.com/hackforfun/p/4181194.html
Copyright © 2011-2022 走看看