如何调用iframe来做某事

How to call an iframe to do something?

本文关键字:iframe 何调用 调用      更新时间:2023-09-26

情况如下。。。。我有一个iframe,它位于我的客户端,iframe内容在我的服务器中。因此,当用户做某事时,我的iframe会出现,他们可以键入一些内容,并发布到我的服务器。但问题是……iframe本身不能消失。我唯一想做的就是提交并隐藏iframe。我可以在客户端做一个按钮来隐藏我的iframe,但iframe无法控制客户端的js。客户端也无法控制我iframe上的按钮。因此,我正在考虑在客户端制作一个按钮,并使用某种命令提交按钮。。。。但问题是我该怎么做?非常感谢。

iframe和父文档可以通过javascript:进行通信

  • iframe可用于如下文档:CCD_ 1。这是iframe的window对象,从这里开始,您可以使用js做任何事情
  • 父文档的窗口可通过CCD_ 3用于iframe。同样,这是父文档的window

也许这个问题对你也有帮助。

实现更强的稳健性:

function getIframeWindow(iframe_object) {
  var doc;
  if (iframe_object.contentWindow) {
    return iframe_object.contentWindow;
  }
  if (iframe_object.window) {
    return iframe_object.window;
  } 
  if (!doc && iframe_object.contentDocument) {
    doc = iframe_object.contentDocument;
  } 
  if (!doc && iframe_object.document) {
    doc = iframe_object.document;
  }
  if (doc && doc.defaultView) {
   return doc.defaultView;
  }
  if (doc && doc.parentWindow) {
    return doc.parentWindow;
  }
  return undefined;
}

...
var el = document.getElementById('iframe_id');
// or
var el = window.frames["iframe_name"];
// or
var el = window.frames[0];
var frame_win = getIframeWindow(el);
if (frame_win) {
  frame_win.targetFunction();
  ...
}
...