zoukankan      html  css  js  c++  java
  • a标签href和onclick事件同时写导致的问题

    项目中用到了base标签,然后在下面又写了a标签,每次点过A标签后,都会跳转到base下的路径。后来查明是A标签href和onclick同时用导致的。

    W3C中base标签用法如下:

    定义和用法

    <base> 标签为页面上的所有链接规定默认地址或默认目标。

    通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。

    使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。

    实例

    <head>
    <base href="http://www.w3school.com.cn/i/" />
    <base target="_blank" />
    </head>
    
    <body>
    <img src="eg_smile.gif" />
    <a href="http://www.w3school.com.cn">W3School</a>
    </body>


    项目中,用到<a href="#onclick="begin();">首 页</a>,这时,页面执行过begin()函数后又执行href,结果跳转到base+"#"地址。
    解决方法:
    1、onclick事件后面的begin()函数后面加上return false ;
    2、href 属性设为 javascript:void(0);


    链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接); 
    假设链接中同时存在 href 与 onclick,如果想让 href 属性下的动作不执行,onclick 必须得到一个 false 的返回值。不信,你可以将 goGoogle 函数中的 return false 注释掉; 
    如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作。应将它的 href 属性设为 javascript:void(0);,而不要是 #,这可以防止不必要的页面跳动; 
    如果在链接的 href 属性中调用一个有返回值的函数,当前页面的内容将被此函数的返回值代替; 
    在按住Shift键的情况下会有所区别。 
    今天我遇到的问题,在IE6.0里以href的形式访问不到parentNode。 
    尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放
     
  • 相关阅读:
    xadmin进行全局配置(修改模块名为中文以及其他自定义的操作步骤)
    xadmin邮箱验证码 标题 EmailVerifyRecord object
    Django源码安装xadmin报错Apps aren't loaded yet.
    python虚拟环境virtualenv下安装MySQL-python(1.2.3)
    Pycharm界面的子窗口不见了,怎么办?
    MySQL-python终于安装成功了
    mysql-python 安装错误: Cannot open include file: 'config-win.h': No such file or directory
    配凑法
    双连不等式
    求参数的取值范围
  • 原文地址:https://www.cnblogs.com/Mygirl/p/3012867.html
Copyright © 2011-2022 走看看