码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-03-30 11:12:23      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:

使用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()方法也可以达到同样的效果。

记录以作备用

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

标签:

原文地址:http://www.cnblogs.com/aleafo/p/4377201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!