如何调用iframe做某事?

时间:2011-08-21 06:33:17

标签: javascript jquery iframe

这是情况.... 我有一个iframe,位于我的客户端,iframe内容在我的服务器中。 因此,当用户执行某些操作时,我的iframe将会出现,并且可以输入内容,然后发布到我的服务器。但问题是...... iframe本身不会消失。 我唯一想做的就是提交并隐藏iframe。我可以在我的客户端做一个按钮来隐藏我的iframe,但是iframe无法控制客户端的js。客户端也无法控制我的iframe上的按钮。 所以,我想在客户端制作一个按钮,并提供一些命令来提交按钮....但问题是我该怎么做?谢谢。

2 个答案:

答案 0 :(得分:3)

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

  • iframe可用于此文档:window.frames["iframe_name"]。这是iframe的window对象,从这里你可以用js做任何事情。
  • 父文档的窗口可通过window.opener访问iframe。同样,这是父文档的window

也许this question也会帮助你。

答案 1 :(得分:0)

更强健:

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();
  ...
}
...