URL地址中的#符号使用说明_javascript技巧
程序员文章站
2022-06-08 16:43:21
...
一般我们想让一个a标签点击后执行javascript代码,有以下几种写法:
方式一:点击一
这种方式的缺点就是点击后会在地址栏的URL后面加#号,同时把页面移动到顶部,一般不建议使用。
方式二:点击一
这种方式避免了方式一的缺点,点击后对页面没有任何影响。但是有一个致命的缺点,就是在IE6下不能执行form对象的submit()方法,也不能执行跳转语句,比如
点击一
点击一
在IE6下就无效,换成href=”#”就能在IE6下正常执行。
方式三:点击一
点击后虽然会在地址栏的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读取内容。
方式一:点击一
这种方式的缺点就是点击后会在地址栏的URL后面加#号,同时把页面移动到顶部,一般不建议使用。
方式二:点击一
这种方式避免了方式一的缺点,点击后对页面没有任何影响。但是有一个致命的缺点,就是在IE6下不能执行form对象的submit()方法,也不能执行跳转语句,比如
点击一
点击一
在IE6下就无效,换成href=”#”就能在IE6下正常执行。
方式三:点击一
点击后虽然会在地址栏的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读取内容。
推荐阅读
-
url参数中有+、空格、=、%、&、#等特殊符号的问题解决_javascript技巧
-
Javascript中的isNaN函数使用说明_javascript技巧
-
URL地址中的#符号使用说明_javascript技巧
-
window.location.href中url中数据量太大时的解决方法_javascript技巧
-
Javascript中的isNaN函数使用说明_javascript技巧
-
window.location.href中url中数据量太大时的解决方法_javascript技巧
-
JavaScript中的prototype使用说明_javascript技巧
-
用javascript替换URL中的参数值示例代码_javascript技巧
-
JavaScript中的Array对象使用说明_javascript技巧
-
javascript提取URL的搜索字符串中的参数(自定义函数实现)_javascript技巧