您的位置:首页 > Web前端 > JavaScript

IE (6-11)版本,在使用iframe的框架时,通过a标签javascript:; 和js跳转parent.location的时候 出现在新页面打开的情况

2015-03-30 09:45 821 查看
问题描述:

使用iframe的情况下,在子框架中,使用如下形式的跳转:

<a href="javascript:;"  onclick="parent.location.href='login.php';"> 退出</a>


在IE浏览器下,点击后,会在退出的情况下,再打开一个页面,URL显示为 javascript:; 的情况出现,也就是说 a标签的 javascript:; 并未生效!

这是一个很奇怪的现象,在谷歌等现代浏览器中并不存在该问题。 最后猜测可能是由于 a标签的href属性 在IE下的解析是先将href的值传递给父框架,然后在父框架中对href的值进行的一个跳转,而此时的href的值已经是一个字符串,并不具备执行js的功能。因此直接在新窗口中打开了URL 为 javascipt:;的页面,因此出现该错误。 那要解决这个问题就要在传递之前阻止a标签的默认事件,解决方法如下:

<a href="#" onclick="parent.location.href='login.php';return false;">退出</a>

//或者使用jquery的,event.preventDefault()方法也可以达到同样的效果。


记录以作备用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐