另一个iframe中的iframe的onload函数

时间:2012-03-20 18:37:26

标签: javascript dom iframe frame

我有嵌套的iframe,我想对内部框架使用onload函数。例如:

<script type="text/javascript">
 var testing = 'test';
 var curFrames;
 var curUrl;
 var mFrames;
 var cFrame;
 var editor;
 var editor2;

 window.onload=CodeOnLoad;

 //Javascript that runs on load
 function CodeOnLoad() {
  curFrames=document.getElementsByTagName("frame");

  console.log(curFrames[0])

  //onload for 1st frame  
  curFrames[0].onload = getInside;


  function getInside() {
   //onload for second frame - Not working 
   curFrames[0].contentDocument.getElementByid('the_iframe').onload = finalFrame;
  }

  function finalFrame() {

   curUrl= curFrames[0].contentDocument.getElementById("the_iframe").src;
   console.log(curUrl);

   if (curUrl.indexOf("post")!=-1)
   {
    mFrames=document.getElementsByTagName("frame");
    cFrame = mFrames[0].contentDocument.getElementById('the_iframe');
    editor = cFrame.contentWindow.tinymce.activeEditor;
    console.log(editor);    
   }
  }
 }

 </script>

代码(第二个回调):

curFrames[0].contentDocument.getElementByid('the_iframe').onload = finalFrame;

永远不会被执行。

是否有可能这样做?

我想确保在执行任何代码之前加载所有帧。

由于

1 个答案:

答案 0 :(得分:2)

将以下视为您的窗口树

父窗口(P1)

---- iframe 1(I1)

-------- Iframe 2(I2)

现在在p1中,保持函数说pfunc,在其中编码你想要编码的任何内容

I1中的

保持功能如下

   function callParent()
   {
       parent.pfunc();
   }

在I2上的on onload调用函数下面

function callParent()
{
   parent.callParent();
}

这样可以随心所欲。