href="###"的样式大致可以看成是“空链接”,关于链接中的#号,目前搜索引擎对带#号URL的收录策略是:去掉#号后面的内容,仅对#号前面的url进行建库。这样就导致一些站长认为有意义有价值的页面,搜索引擎却无法收录,继而影响新链接的抓取和整体SEO效果。其实很多网站都带有这些链接的。那么href属性中含"#"空链接的用处是什么?值得我们去修改吗?
超链接中 href='#' 和 href='###' 的区别是什么呢?
简单地说,如果想定义一个空的链接,又不跳转到页面头部,可以写href="###"。
详细地说
'#' 是有特定意义的,如果 '#' 后有内容会被认为是一个标签而从页面找到相应标签跳转到该处,找不到时会跳到页首;
'###' 是一个无意义的标签指定,也就是一个 '#' 和不存在的标签 '##' 的组合,页面中找不到命名为 '##' 的<a>时该链接就不会发生跳转,也就不会导致执行 onclick 中的内容时突然发生页面跳到页首的问题;
"###"主要是防页面跳动。从其它意义来说,只是一种使用者习惯,如果愿意,可以随便找一个跳转不到的标签作为命名。
说白了"###" 就是一个不是锚点的字符串,浏览器找不到也不会跳到页首,原理就是依赖了网页的报错机制,找不到就不做处理。以前空链接的href属性通常使用"#"来填充,但当页面出现滚动条时,点击空链接,页面会跳动到页首,给人的感觉很不爽。
为什么当用"#"填充空链接时会出现页面跳动的现象?
原因是"#"被默认为锚点"#top",即跳转到本页页首。查找了下资料, 以下为自己尝试过的3种解决办法:
1、使用3个#号,<a href="###" onclick="">链接</a>。为什么要用3个呢,不得其解。也没有查资料了,本来就是一个无法理解的问题。
2、使用javascript:void(0),<a href=" javascript:void(0) "onclick="">链接</a>。它在各个浏览器下均可正常工作(这里的正常工作,指防止页面跳动)。很多网站都在使用这个标签,尤其是轮播图的地方。
3、在onclick事件函数中使用return false,<a href=" # " onclick="return false">链接</a>。
无论是用#还是void(0),有一个共同的缺点在于:这样做就让这个行为,必须启用js才能实现。另外,js不能被搜索引擎所跟踪,这是个需要考虑的问题。
从这个意义上讲,#甚至更差一些,因为单独的#在语义上,其实隐含着指向了网页自己,如果使用“在新标签页中打开”时就会产生迷惑。而这个问题void(0)没有。
所以最好能做到以下二者其一:
href属性指向一个真正的单独的页面。让业务功能在没有js时,通过跳转页面也能实现,只不过js能实现的更加优雅(例如用ajax做无刷新更新,或用lightbox做网页内弹出小窗口)。如果实在没有js不行,那就把功能链接在加载网页时暂时隐藏,等到js就绪了再真正显示出来。
注:其实真正不好的写法是<a href="javascript:void(0)" onclick="functionclick();">,真正的在html中混杂js行为,让html的工作者时刻做“别把哪段js不小心删了”这种不必要的担心。正确的做法应该是对<a>定义id属性,然后通过id后绑定click等事件。
网址带#的链接过多是一件让用户无法接受的问题, 蜘蛛无法抓取这种类型(中间含有#号)的网址。蜘蛛看到#,后面的东西就基本上不抓了,另外网址里含有#是件让部分SEOer无法接受的问题。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
你可能也喜欢
- ♥ 网站设计定价有哪些因素?07/25
- ♥ 定制网站和普通模板网站的区别是什么?04/24
- ♥ 企业高端网站建设开发需要哪些流程?07/21
- ♥ 网站日志HTTP状态码分析07/19
- ♥ 浅谈网站设计技术在实际中的使用06/25
- ♥ 自己怎么搭建一个网站?09/20