zoukankan      html  css  js  c++  java
  • 解决点击链接自动置顶问题

    将</body>之前所有的空链接 既 href="#" 改为href="javascript:void(0);"即可。

    如果是个# ,就会出现跳到顶部的情况,个人收藏的几种解决方法:
    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>
    5:<span style="cursor:hand"></span>(好像在FF中不能显示)s

       href=#与href=javascript:void0的区别,nbsp;#包含了一个位置信息默认的锚点是#top也就是网页的上端;而javascript:void(0)s仅仅表示一个死链接这就是为什么有的时候页面很长浏览链接明明是#可是却跳到了页首,而javascript:void(0) 则不是如此。所以调用脚本的时候最好用void(0)或者<input onclick>、<div onclick>等。
    打开新窗口链接的几种办法
    1.window.open('url')
    2. 用自定义函数
            <script>
            function openWin(tag,obj)
            {
                obj.target="_blank";
                obj.href = "Web/Substation/Substation.aspx?stationno="+tag;
                obj.click();
            }
            </script>
    <a href="javascript:void(0)" onclick="openWin(3,this)">LINK_TEST</a>
    window.location.href=""
    -------------------------------------------------------------------------------
    慎用JavaScript:void(0)
    今天调试CGI的时候,明明CGI程序已经执行,并且最后结果也是正确的,但是页面就是不刷新。在 FireFox2.0下测试,结果却是正常的,IE6却偏偏不刷新!仔细调查了一下,发现cgi页面链接的是 <a href="javaScript:void(0)" OnClick="XXX_Func();" ….> only a sample </a>,问题就出在这个void(0)上!让我们先来看看JavaScript中void(0)的含义:
    JavaScript中 void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
    void 操作符用法格式如下:
    1. javascript:void (expression)
    2. javascript:void expression
    expression 是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。我们可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。
    <a href="javascript:void(0)">单击此处什么也不会发生</a>
    也就是说,要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。
    其实我们可以这样用<a href="javascript:void(document.form.submit())">,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),:) ,所以在使用 void(0)之前,最好先想一想,这个页面是否需要整体刷新。
    ----------------------------------

    为什么location.href不自动跳转?慎用javascript:void(0)

    <a href="javascript:void(0)" onclick="delete('123')">删除</a>
    <script>
    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>
    <script>
    function delete(id) {
       if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
           location.href="/delete.jsp?id=" + id;
       }
    }
    我们发现,页面立即就跳转了,能正常删除相应的数据。

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

    href="#"和javascript:void(0)在ie6下的区别: 

    之前在项目,用到超链接,在ie下没有问题,但是到了ie6,居然发现点击事件不起作用, 真不可思议,以前都没注意到,后来网上搜了下,问题就出在这个void(0)上!现把网上的资料整理了下。
    Html代码
    1. <a href=”javaScript:void(0)” onClick=”doSomething();”>doSomethind</a>  
    2. <a href=”javaScript:void(0)” onClick=”doSomething();”>doSomethind</a>
      让我们先来看看JavaScript中void(0)的含义:
      JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
      void 操作符用法格式如下:

    Html代码

    1. javascript:void (expression)  
    2. javascript:void expression  
    javascript:void (expression)
    javascript:void expression
    

    expression是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。我们可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。
    Html代码
    1. <a href=”javascript:void(0)”>单击此处什么也不会发生</a>  
    <a href=”javascript:void(0)”>单击此处什么也不会发生</a>
    

    也就是说,要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。
    Html代码
    1. <a href=”javascript:void(document.form.submit())”>  
    <a href=”javascript:void(document.form.submit())”>
    

    其实我们可以用上面的代码,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),:D 所以在使用void(0)之前,最好先想一想,这个页面是否需要整体刷新。



    Html代码
    1. <script type="text/javascript">     
    2.     function goUrl(x){     
    3.         window.location.href=x;     
    4.     }     
    5. </script>     
    6.   
    7. <a href="javascript:;" onclick="javascript:goUrl('http://www.sina.com');">跳转1</a>  
    8.      
    9. <a href="javascript:void(0);" onclick="javascript:goUrl('http://www.sina.com');">跳转2</a>  
    10.      
    11. <a href="javascript:void(0);" onclick="javascript:goUrl('http://www.sina.com');return false;">跳转3</a>     
    12.   
    13. <a href="#" onclick="javascript:goUrl('http://www.sina.com');">跳转4</a>     
    14.   
    15. <a href="###" onclick="javascript:goUrl('http://www.sina.com');">跳转5</a>    
    <script type="text/javascript">   
        function goUrl(x){   
            window.location.href=x;   
        }   
    </script>   
    
    <a href="javascript:;" onclick="javascript:goUrl('http://www.sina.com');">跳转1</a>
       
    <a href="javascript:void(0);" onclick="javascript:goUrl('http://www.sina.com');">跳转2</a>
       
    <a href="javascript:void(0);" onclick="javascript:goUrl('http://www.sina.com');return false;">跳转3</a>   
    
    <a href="#" onclick="javascript:goUrl('http://www.sina.com');">跳转4</a>   
    
    <a href="###" onclick="javascript:goUrl('http://www.sina.com');">跳转5</a>  
    

    测试环境IE6,IE7,Firefox 3。

    跳转1和2在IE6环境下无效,3、4、5在IE6,IE7,Firefox3.01下测试均能 通过,。

    跳转4和5最简洁。

    关键在于<a>的href属性,空链接用"#","###"。

    为了不返回网页顶端。

    空链接推荐用"###"。
  • 相关阅读:
    双击快速打开.ipynb文件的方法
    关于selenium元素点击时出现“element click intercepted :“报错解决办法(亲测可用)
    centos 安装Selenium+Chrome
    最全苹果cms问题解决100
    -scrapy startproject时,报错 from cryptography.hazmat.bindings._openssl import ffi, lib的解决方法
    解决打开fiddle后不能上网
    python学习笔记 pip安装加速&&python淘宝镜像安装包
    lxml.etree类型。不能序列化ElementUnicodeResult
    最值问题
    数列的求和公式
  • 原文地址:https://www.cnblogs.com/ice_nemo/p/1999972.html
Copyright © 2011-2022 走看看