作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 01:00:42 阅读 我要评论

一般我们想让一个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读取内容。

  推荐阅读

  jquery isType() 类型判断代码

复制代码 代码如下: class2type = {}; toString = Object.prototype.toString; type: function( obj ) { return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; }, isFunction: fu>>>详细阅读


本文标题:URL地址中的#符号使用说明

地址:http://www.17bianji.com/kaifa2/JS/24945.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)