注意在给超链接加脚本的时候
作者:admin 日期:2011-09-22
以前看过一篇文章,说的是html代码编写习惯的问题,今天切实体会到了这个的重要性。
在做前台的时候,我们经常会用到<a>这个标签来做按钮,比如写下如下语句
<a href="#" id="test">测试</a>
然后用jQuery 来给这个链接加上代码 :
$("#test").click(function(){alert('test');});
或许是由于重构人员的疏忽,或许由于前端人员的疏忽,这段代码就这么留下来了!!!
有人说,这段代码没什么问题呀!!
是的,看上去是很正常的,因为很多人(包括我)一般都是这么写的,所以也就见怪不怪了。
这段代码的问题在哪呢?
或许我们都疏忽了href="#"这个属性的作用,据我所知,这个属性可以用来回到本页的顶端!仅仅是回到顶端么?显然不是的。如果这个超链接是在新窗口,或者是在其他非本窗口的地方打开,那么就会在另外一个窗口重新来加载这个页面。如果这个“按钮”是在一个iframe里面,而这个超链接打开的目标是父窗口...那么问题就来了,当前的页面就跑到父窗口那里去显示出来了,父窗口也就因此毁掉了。
那么,怎么写才是正确的呢?
好吧,我只能说有一种比较正确的做法。就是href="javascript:;"
起码个代码是不会改变任何页面的导航的。。
在做前台的时候,我们经常会用到<a>这个标签来做按钮,比如写下如下语句
<a href="#" id="test">测试</a>
然后用jQuery 来给这个链接加上代码 :
$("#test").click(function(){alert('test');});
或许是由于重构人员的疏忽,或许由于前端人员的疏忽,这段代码就这么留下来了!!!
有人说,这段代码没什么问题呀!!
是的,看上去是很正常的,因为很多人(包括我)一般都是这么写的,所以也就见怪不怪了。
这段代码的问题在哪呢?
或许我们都疏忽了href="#"这个属性的作用,据我所知,这个属性可以用来回到本页的顶端!仅仅是回到顶端么?显然不是的。如果这个超链接是在新窗口,或者是在其他非本窗口的地方打开,那么就会在另外一个窗口重新来加载这个页面。如果这个“按钮”是在一个iframe里面,而这个超链接打开的目标是父窗口...那么问题就来了,当前的页面就跑到父窗口那里去显示出来了,父窗口也就因此毁掉了。
那么,怎么写才是正确的呢?
好吧,我只能说有一种比较正确的做法。就是href="javascript:;"
起码个代码是不会改变任何页面的导航的。。
评论: 3 | 查看次数: 5749