URL地址中的#符号使用说明


Posted in Javascript onFebruary 12, 2011

一般我们想让一个a标签点击后执行javascript代码,有以下几种写法:
方式一:<a href="#" onclick="alert(1);">点击一</a>
这种方式的缺点就是点击后会在地址栏的URL后面加#号,同时把页面移动到顶部,一般不建议使用。
方式二:<a href="javascript:void(0);" onclick="alert(1);">点击一</a>
这种方式避免了方式一的缺点,点击后对页面没有任何影响。但是有一个致命的缺点,就是在IE6下不能执行form对象的submit()方法,也不能执行跳转语句,比如
<a href="javascript:void(0);" onclick="document.forms[0].submit();">点击一</a>
<a href="javascript:void(0);" onclick="window.location.href='http://www.google.com';">点击一</a>
在IE6下就无效,换成href=”#”就能在IE6下正常执行。

方式三:<a href="###" onclick="alert(1);">点击一</a>
点击后虽然会在地址栏的URL后面加三个#号,但是不会影响滚动条,同时在IE6下也能执行form对象的submit()方法与跳转语句,算是一个比较折中的方法。

结论:我个人认为如果执行的javascript方法中需要提交表单、跳转页面,则用方式三,其它情况都用方式二。

另:这又附带引出另一个问题,一般重新加载当前页面用如下的javascript代码:
window.location.href = window.location.href;
但是当URL地址中含有#时,上述代码无效,于是需要用如下代码:
window.location.href = window.location.href.split('#')[0];
将URL地址以#符号分割开,取第一部分即可。

在很多情况下/index.htm#desc,后面的desc可能就是参数,不容易的参数显示不同的内容,不是简单锚点,而是ajax读取内容。

Javascript 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
JavaScript使用cookie
Feb 02 Javascript
jquery validate使用攻略 第四步
Jul 01 Javascript
jQuery的12招常用技巧分享
Aug 08 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
Jul 21 Javascript
jQuery Animation实现CSS3动画示例介绍
Aug 14 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
jQuery原生的动画效果
Jul 10 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 Javascript
基于Jquery制作的幻灯片图集效果打包下载
Feb 12 #Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 #Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
Feb 12 #Javascript
在vs2010中调试javascript代码方法
Feb 11 #Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 #Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 #Javascript
juqery 学习之五 文档处理 插入
Feb 11 #Javascript
You might like
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php程序内部post数据的方法
2015/03/31 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python 连连看连接算法
2008/11/22 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Django的models模型的具体使用
2019/07/15 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
2015个人半年总结范文
2015/03/09 职场文书
投诉书格式范本
2015/07/02 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
详解redis在微服务领域的贡献
2021/10/16 Redis
Python中request的基本使用解决乱码问题
2022/04/12 Python