href="javascript:"的使用
2016-02-19 16:34
609 查看
在开发中经常使用href="javascript:;"使得<a>标签失效不跳转,而使用绑定的方法进行跳转。
写法有好多种,如
1.<a href="javascript:;">
2.<a href="javascript:void(0);">
3.<a href="javascript:void();">
4.<a href="javascript:function();">(可以成功,但不建议使用)
在这需要注意的是如果写错,写成<a href="javascript:(0);">,会导致在一般的浏览器上正常,
而IE上的效果如下图,页面url不变,但页面内容显示为0。
![](http://img.blog.csdn.net/20160219161846280?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
原因:
javascript:是伪协议,作用是使得链接可以调用函数,伪协议是Javascript:而不是Javascripts:后面没有S。
void是一个操作符,void(0)表示不作任何操作,用来阻碍事件的默认操作。
onclick="return false;"这是给元素内嵌onclick事件处理函数,阻止默认事件的发生,防止冒泡,使用内嵌事件处理函数同样也是很不好的习惯,
因为因为你的网站的访问者完全有可能使用的是不支持JavaScript的浏览器,有一些可能是浏览器不支持你使用的Javascri脚本,或者是你的脚本有错误。在这种情况下,就要保证,你的网站即使在所有的JavaScript都失效时,仍然能够正常访问。而使用了内嵌处理函数,你的网站就不能再访问。
什么是伪协议?
伪协议就是“Javascript:”。在讲javascript:前首先看下面的例子,例子懂了就差不多知道javascript是什么,怎样使用了。
单击“JavaScript:伪协议使用1”效果如下,伪协议后的是任意的JavaScript代码,如果有多个语句,只输出最后一条。
![](http://img.blog.csdn.net/20160219174403174?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
单击“JavaScript:伪协议使用2”效果如下,可以只包含执行动作
![](http://img.blog.csdn.net/20160219174533738?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
单击“JavaScript:伪协议使用3”效果如下,打开一个新的页面。
![](http://img.blog.csdn.net/20160219174630096?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
本文部分内容来自:
http://q.cnblogs.com/q/56676/ http://www.jb51.net/article/52358.htm
写法有好多种,如
1.<a href="javascript:;">
2.<a href="javascript:void(0);">
3.<a href="javascript:void();">
4.<a href="javascript:function();">(可以成功,但不建议使用)
在这需要注意的是如果写错,写成<a href="javascript:(0);">,会导致在一般的浏览器上正常,
而IE上的效果如下图,页面url不变,但页面内容显示为0。
原因:
javascript:是伪协议,作用是使得链接可以调用函数,伪协议是Javascript:而不是Javascripts:后面没有S。
void是一个操作符,void(0)表示不作任何操作,用来阻碍事件的默认操作。
onclick="return false;"这是给元素内嵌onclick事件处理函数,阻止默认事件的发生,防止冒泡,使用内嵌事件处理函数同样也是很不好的习惯,
因为因为你的网站的访问者完全有可能使用的是不支持JavaScript的浏览器,有一些可能是浏览器不支持你使用的Javascri脚本,或者是你的脚本有错误。在这种情况下,就要保证,你的网站即使在所有的JavaScript都失效时,仍然能够正常访问。而使用了内嵌处理函数,你的网站就不能再访问。
什么是伪协议?
伪协议就是“Javascript:”。在讲javascript:前首先看下面的例子,例子懂了就差不多知道javascript是什么,怎样使用了。
<br /> <a href="javascript:var now=new Date();'<h1>现在时间是:</h1>'+now;">JavaScript:伪协议使用1</a> <br /> <a href="javascript:alert('伪协议使用2');">JavaScript:伪协议使用2</a> <br /> <a href="javascript:window.open('about:blank');void 0;">JavaScript:伪协议使用3</a>
单击“JavaScript:伪协议使用1”效果如下,伪协议后的是任意的JavaScript代码,如果有多个语句,只输出最后一条。
单击“JavaScript:伪协议使用2”效果如下,可以只包含执行动作
单击“JavaScript:伪协议使用3”效果如下,打开一个新的页面。
本文部分内容来自:
http://q.cnblogs.com/q/56676/ http://www.jb51.net/article/52358.htm
相关文章推荐
- prototype.js与百度编辑器冲突
- js下将金额数字每三位一逗号分隔
- Ajax基础
- Jsp基础1:基本语法和使用
- js内置对象详解
- MJExtension json解析第三方
- ProjectOne(02) - 创建一个package.json文件
- javascript的事件冒泡和事件捕获
- JSPatch源码剖析(一)
- JavaScript设计模式
- javascript下使用Promise封装FileReader
- 公历和农历转换的JS代码
- js 中 < 、>等不能正常显示的字符 转义
- jsonp
- js与native交互方式
- javascript每日必学之循环
- 区块的边距中offsetLeft 和style.left 的区别
- jstl三目运算:前台页面截取字符串
- js 获取js自身参数
- 关于$.ajax()在jsp中失效