<a>标签中 href="javascript:void(0)"的危害
javascript吧
全部回复
仅看楼主
level 9
长歌天际 楼主
这个贴子是用来收集 <a> 标签中 href="javascript:void(0)" 在使用中出现问题的帖子
如果大家在使用 <a href="javascript:void(0)">test</a> 等类似的开发时遇到问题可以在这里提出来
·有问题的建新层
·解决问题的可以直接在对应的楼层中解答
学习是一个过程,记录开发中的每一个bug,是我们进步的基础
2014年01月16日 05点01分 1
level 9
长歌天际 楼主
html:
<a href="javascript:test2();" onclick="ie6test()">ie6</a><br>
js:
function ie6test() {
location.href = "http://www.baidu.com";
}
function test2(){
return true;
}
这段代码,看起来我认为会是点击能跳转到百度首页的,但是
测试了这段代码
测试环境:
google 31 --能跳转到百度
360 6.2 --能跳转到百度
IE系列 --跳到javascript:test2();页面,内容是true
FF 26 --跳到javascript:test2();页面,内容是true
其他浏览器未测试
无法理解...
2014年01月16日 06点01分 4
可能火狐系列都无法正常跳转吧
2014年01月16日 06点01分
这么写么很大程度上就是在折腾自己了
2014年01月16日 07点01分
回复 ccsdsx :有道理,有道理
2014年01月16日 14点01分
level 11
和void(0)有关系吗
2014年01月16日 06点01分 5
和a标签有关系,别计较这个嘛,你也有遇到问题吗?贴出来大家看看
2014年01月16日 06点01分
level 9
长歌天际 楼主
<a href="javascript:void(0);" onclick="test()">test</a>
<a href="#" onclick="test()">test</a>
<a href="###" onclick="test()">test</a>
我经常用第一种,
因为第二种点击时页面会回到顶部,就好像顶部有个锚点,然后点击去到那个锚点一样
第二三两种点击时都会使URL拼接上很多个#号
但是第一种听说也有缺陷,目前我做的都是OA,基本不怎么需要考虑兼容性,所以还没遇到过
谁遇到过使用第一种方式而产生的bug?请留名,谢谢[太阳]
2014年01月16日 06点01分 6
return false就行了
2014年01月16日 07点01分
有问题啊,我在google浏览器里面访问竟然不执行,点解?
2014年05月29日 08点05分
有问题,我在google、火狐中都不执行
2014年06月07日 03点06分
火狐中就逗了, 直接当url提交了。
2014年06月26日 14点06分
level 14
如果一个 a 存在的意义不是跳转,那么为什么一定要用 a 呢?
2014年01月16日 07点01分 7
你能说的再精辟点不?有道理![哈哈]
2014年01月16日 09点01分
我所知道的是因为为了在ie下的兼容所使用的一种替代性的解决方案,因为低版本ie不支持a标签外的伪类属性,像hover,focus等等
2014年08月19日 06点08分
如果仅仅是为了作为一个按钮,就应该用Button?是这个意思?
2014年08月20日 10点08分
a标签做翻页按钮 是主流
2015年07月08日 03点07分
level 8
什么情况下必须要用不指向url的a标签呢?这也是个问题
2014年01月17日 08点01分 9
三体……
2014年08月19日 03点08分
回复 叩舷而歌 :同志。。
2014年08月19日 11点08分
level 2
执行顺序问题 先执行a标签 再执行onclick事件 把a标签和onclick的函数对换下 再点击打开的就是百度了
2014年01月17日 09点01分 10
level 7
javascript:;
2014年01月17日 12点01分 11
level 11
javascript:return false;
2014年04月17日 04点04分 14
level 1
改成这样就可以通用了:<a href="javascript:ie6test();" onclick="">ie6</a><br>
2014年04月20日 05点04分 15
level 1
最好不要同时使用
2014年04月20日 05点04分 16
level 1
这种写法很无聊 保留一种就行了 两个同时存在你瞎折腾干嘛
2014年04月20日 16点04分 17
level 13
小弟混脸熟,~混脸熟~
2014年04月24日 05点04分 19
level 2
愚蠢的做法。
第一: 结构——表现——行为 分离是一个前端进阶的必修课,a(HTML)属于结构,其样式(CSS)属于表现,嵌入的代码属于行为,这应该是在js层中,利用js获取元素定义然后其行为的,而不是在html中。
第二:死链是对SEO非常不友好的,爬虫会直接略过。
第三:浏览器行为不一,部分浏览器会忽略默认行为,而部分游览器不会。导致点击链接表现不一致。
第四:文档语义不明,既然不是一个可以点击跳转的链接,弄个a上去作甚?
如果只是要一个悬停会出现下划线的文字,点击触发事件。完全可以做一个span或者p,鼠标悬停添加下划线样式,绑定一个触发事件。
不跳转的a,不提交的submit,不能点的button,都是蠢到极点的行为,好比把一个人砍手砍脚糊上草,做成一个稻草人。远不如找一堆草,做成人的样子。毕竟它的本质是草而不是人。
2014年06月27日 02点06分 20
有道理!
2014年06月27日 05点06分
你说的很对,但是有ie这种奇葩在,有时候不得不采取一些兼容性措施来弥补ie的缺陷
2014年08月19日 06点08分
level 9
搜索引擎爬虫蜘蛛不认识js,你这么做,不无聊嘛。
2014年07月29日 02点07分 21
level 10
从来没这么写过,所以没有碰到过问题
2014年08月20日 10点08分 22
level 11
那种的话在火狐下有问题,最好设置为javascript:;
2015年04月16日 13点04分 23
level 7
我一般都用javascript:;
2015年07月08日 03点07分 24
level 11
<div id="fixed"><a href="javascript:void(0);" onclick="home()"><img alt="主页" src="./img2/back.png" id="home" /></a></div>
function home(){
alert(1);
document.getElementById("iframe").src=getUrl2(homeLi[2]);
scrollvalue = 0;
}
弹窗都没有,没反应……求解呀……
2017年01月11日 04点01分 25
已解决!……原因很坑爹……
2017年01月11日 05点01分
1