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 相关文章推荐
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
Sep 01 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
javascript截取字符串小结
Apr 28 Javascript
JavaScript组件开发完整示例
Dec 15 Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
Aug 24 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
Java设计中的Builder模式的介绍
Mar 22 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
Jun 19 Javascript
angular2实现统一的http请求头方法
Aug 13 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
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
Javascript 二维数组
2009/11/26 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
Python字符串三种格式化输出
2020/09/17 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
如何设置Java的运行环境
2013/04/05 面试题
新学期家长寄语
2014/01/19 职场文书
群众路线剖析材料
2014/02/02 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
社区节水倡议书
2015/04/29 职场文书
早安问候语大全
2015/11/10 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
pandas中关于apply+lambda的应用
2022/02/28 Python