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

    问题描述:

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

    记录以作备用

  • 相关阅读:
    SQL exists( select 1 from
    svn不知道这样的主机
    SVN 操作指南
    SVN导出/导入、SVN备份/还原 【小白版】
    Asp.net窄屏页面 手机端新闻列表
    装饰者模式
    适配器模式
    原型模式
    建造者模式
    抽象工厂方法
  • 原文地址:https://www.cnblogs.com/aleafo/p/4377201.html
Copyright © 2011-2022 走看看