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 相关文章推荐
怎么用javascript进行拖拽
Jul 20 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
jQuery列表拖动排列具体实现
Nov 04 Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 Javascript
详解jQuery中的事件
Dec 14 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 Javascript
详解vue-cli@2.x项目迁移日志
Jun 06 Javascript
js实现微信聊天界面
Aug 09 Javascript
token 机制和实现方式
Dec 15 Javascript
JavaScript实现贪吃蛇游戏
Jun 16 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
学习php中的正则表达式
2014/08/17 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
非常实用的php验证码类
2016/05/15 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
浅述python2与python3的简单区别
2018/09/19 Python
基于python实现地址和经纬度转换
2020/05/19 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
虚拟机下载python是否需要联网
2020/07/27 Python
Linux常见面试题
2016/10/04 面试题
培训心得体会
2013/12/29 职场文书
市场总经理岗位职责
2014/04/11 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
社区服务标语
2014/07/01 职场文书
公司委托书格式
2014/08/01 职场文书
教师暑期培训感言
2014/08/15 职场文书
故宫的导游词
2015/01/31 职场文书
现场施工员岗位职责
2015/04/11 职场文书