链接中 href='#' 和 href='###' 的区别以及优缺点

     首先,<a> 标签 + onclick='{jscode}' 是很常用的一种 js 运用方式,而不使用 href='javascript:{jscode}' 是为了兼容多种浏览器对 <a> 标签的解释和处理不同。其次,使用 <a> 标签 + onclick='{jscode}'  时经常会加一个 href='###',而有时这个 href='###' 会被误写为 <a href='#'> 是因为使用者没有理解 '#' 和 '###' 的区别。

     简单地说,就是说如果想定义一个空的链接,又不跳转到页面头部,可以写href="###"。详细解释就是'#' 是有特定意义的,如果 '#' 后有内容会被认为是一个标签而从页面找到相应标签跳转到该处,找不到时会跳到页首, '###' 其实就是一个无意义的标签指定,也就是一个 '#' 和不存在的标签 '##' 的组合,页面中找不到命名为 '##' 的 <a> 时该链接就不会发生跳转,也就不会导致执行 onclick 中的内容时突然发生页面跳到页首的问题。'###' 只是一种使用者习惯,如果你愿意,可以随便找一个跳转不到的标签作为命名。说白了"###" 就是一个不是锚点的字符串 浏览器找不到也不会跳到页首,原理就是依赖了网页的报错机制,找不到就不做处理。

     有些人说,不喜欢“###”因为他会改变链接。都是使用一直用javascript:void(0)或者javascript:。href="javascript:void(0);"但也有人说用href="javascript:void(0);"可能会有浏览器兼容问题。在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#",但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面顶端,用户体验不好。

     javascript:void(0)这种伪协议,少写的好,如果你看过一些web标准的书就知道为什么了。 2.链接(href)直接使用javascript:void(0)在IE中可能会引起一些问题,比如:造成gif动画停止播放等,所以,最安全的办法还是使用“####”。为防止点击链接后跳转到页首,onclick事件return false即可。

   如有其他想法可在下面回帖

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信小程序开发

微信小程序开发常见问题(四)

知晓程序员,专注微信小程序开发的程序员! 一、小程序不同页面之间的传值方式 a、URL传值 这种方式最常用,比如: wx.navigateTo({ url...

4065
来自专栏web前端教室

先行者计划群视频 每周一课 -- 什么是前端组件?(文字简版)

image.png 在今天同学们发我的作业中,我给一个同学回复说,你这不是组件化,只是一个效果的实现。他问我,那还要什么呢?我不是特别理解。 今天咱们先聊一下,...

19710
来自专栏Jerry的SAP技术分享

动态控制C4C UI元素的显示和隐藏

C4C UI上UI元素的显示和隐藏可以通过Key User在Adaptation模式里通过编辑一些简单的rule去控制,诸如这种格式:

4274
来自专栏CSDN技术头条

小程序开发:腾讯、阿里、百度、头条都在抢!

最早小程序在微信平台上成名,手握 10 亿月活用户的微信,很快成为小程序创业者的掘金之地。巨头的嗅觉敏锐,支付宝、百度随即跟进,今日头条也开始内测小程序,几大平...

1502
来自专栏WindCoder

2014-2015插件整理

主要作用:Protect your WordPress site by hiding vital areas of your site, protecting ...

742
来自专栏阿炬.NET

jQuery EasyUI 1.3.2 离线API、Demo

2785
来自专栏前端黑板报

小程序-获取多个formId

如同上面的几行代码,只要你点击登录按钮,就能提交一次表单,也能获取一次formId,但是想要实现点击一次提交多次,光靠复制这几行代码,貌似还不行,无论是缩小按钮...

4303
来自专栏IMWeb前端团队

bigpipe性能优化

本文作者:IMWeb moonye 原文出处:IMWeb社区 未经同意,禁止转载 背景 当前网速越来越快,但是随着网页内容越来越丰富,其实我们打开网页...

25610
来自专栏搞前端的李蚊子

微信小程序使用字体图标的方法

一、先到阿里巴巴矢量图标库(http://iconfont.cn/),用微博帐号登录,搜索你想要的图标,然后添加入库 image.png 从项目里下载下来并解压...

3195
来自专栏腾讯移动品质中心TMQ的专栏

H5前端性能测试快速入门

前言 说到H5测试,对于做WEB测试的同学来说再熟悉不过了,它包括页H5功能测试,前端性能测试,浏览器兼容性能测试,以及服务端性能测试。那本文谈到...

2486

扫码关注云+社区