繁体   English   中英

通过Javascript关闭iFrame

[英]Closing an iFrame via Javascript

我正在使用模式叠加层的应用程序,当按下相应的按钮时,它会出现在iFrames中。 要关闭其中一个模态叠加层,可以通过以下方式在父窗口中定义“取消”按钮:

 <a href="#close" class="modalButton">Cancel</a>

我想用JavaScript函数替换它(让我们把它称为onCancel()),这样我可以在需要时重置一些值,除了关闭叠加层。 什么是相当于“#close”的JavaScript?

您无法关闭iFrame,您必须删除或隐藏它。 以下示例将删除iframe 如果你只想隐藏你可以替换最后一行(包含removeChild与这一frame.style.display="none";然后你可以通过使用这一行来取回它frame.style.display="block";

 <!DOCTYPE html> <head> <title>test</title> <style type="text/css"> .top { height: 100px; width: 200px; background-color: blue; } </style> <script type="text/javascript"> function removeIFrame() { var frame = document.getElementById("iframe"); frame.parentNode.removeChild(frame); } </script> </head> <body> <div class="top" onclick="removeIFrame();"></div> <iframe id="iframe" src="/" width="200" height="100"></iframe> <div class="top"></div> </body> 

<!DOCTYPE html>
<head>
    <title>test</title>
    <style type="text/css">
    .top {
        height:100px;
        width:200px;
        background-color:green;
    }
    </style>
    <script type="text/javascript">
    function removeIFrame() {
        var frame = document.getElementById("target");
        frame.parentNode.removeChild(frame);
    }
    </script>
</head>
<body>
    <div class="top" onclick="removeIFrame();"></div>
    <iframe id="target" src="http://www.disney.com" width="100" height="100"></iframe>
    <div class="top"></div>
</body>

适合我的方法是在父页面中定义以下JavaScript函数:

function onCancel()
{
    var myIFrame = document.getElementById("myIFrame");
    var myForm = myIFrame.contentDocument.myForm;
    var stuffWasChanged = myIFrame.contentDocument.stuffWasChanged;
    if (stuffWasChanged == "true")
       myForm.action = "reset.do";

    myForm.submit();
    location.href = '#';
  }

请注意,如果stuffWasChanged标志未设置为true,则不会为相关表单定义任何操作,因此模式覆盖只会在没有调用任何servlet方法的情况下消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM