如何在 iframe 完成其进程时将相同的域不可见的 IFRAME 内容放入主页

How to get same domain invisible IFRAME content in to main page when iframe finishes its process?

本文关键字:IFRAME 主页 iframe 进程      更新时间:2023-09-26

我想知道如何创建一个不可见的iframe并将其最终内容也放入主页,而不仅仅是在iframe中?(注。我的不可见的 iframe url 位于同一域中,并且是用 php 编写的,我可以根据我的要求对其进行修改)。

<iframe id ='myframe' src='http://www.mydomain.com/process.php'></iframe>

我的目标是向用户显示某种加载动画,而不可见的 iframe 完成其过程(通常需要 10 秒才能完成),然后在主页中显示最终输出并删除加载动画。

我的不可见 iframe 重定向到另一个 php url(也在同一域中)并输出一些数据,但我想在我的主页中显示这些数据,而不仅仅是在不可见的 iframe 中。你们能告诉我这是怎么做到的吗?

这是你要找的?否则我只能想到为此使用ajax

使用ajax共享状态黑白,或者您可以在一个窗口中执行动画,完成后,您可以使用window.open();打开一个新窗口

我从未以这种方式尝试过 ajax,但是:

<frameset cols="25%,*,25%">
  <frame src="frame_a.php">
  <frame src="frame_b.php">
</frameset>

frame_a.php 上的动画结束时,JavaScript 方法可以使用 ajax 与frame_b.php

frame_a.php<script></script>内的方法将向 frame_b.php 发送 post 或获取参数。不用担心加载...如果您没有很多资源(CSS/JS文件),它就足够快了。此外,如果您不希望用户等待,则可以在frame_b.php上设置一些默认动画。

这是该方法应包含的内容:

function share_state_with_frame_b(state) {
    $.ajax({
      type: "POST",
      url: "frame_b.php",
      data: { d1: "v1" , d2: "v2" }
    }).done(function( msg ) {
      // close frame_a.php
    });
}