javascript,js - 从父窗口访问iframe中的js函数

时间:2011-05-20 14:36:07

标签: javascript html iframe

大家好日子。

我有以下设置:

包含html,js等(通常的东西)和iFrame的页面。在iFrame中,我有一个执行某些操作的功能(任何事情..警报('test');例如)。

如果我点击主页面上的按钮,我需要运行该功能。

例如,如果我在主页面中按下按钮提醒,则iFrame中必须出现带有“测试”字样的警报。

2 个答案:

答案 0 :(得分:2)

document.frames[n]可以按照文档中显示的顺序访问框架。 所以document.frames[0].contentWindow.myFunction()会在框架内调用你的函数,以防iframe是唯一的框架。

从框架中调用主窗口中的功能可通过top top.myFunction()进行操作。如果您只想提升一级,请使用parent

答案 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('targetFrame');

getIframeWindow(el).targetFunction();
...