Функция загрузки для iframe внутри другого iframe - PullRequest
3 голосов
/ 20 марта 2012

Я вложил iframes и хотел бы использовать функцию 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 Ответ

2 голосов
/ 20 марта 2012

Рассмотрим ниже как дерево окон

Родительское окно (P1)

---- Iframe 1 (I1)

-------- Iframe2 (I2)

Теперь в p1 сохраните функцию, скажем, pfunc, в которой вы кодируете все, что хотите кодировать

, в I1 сохраните функцию, как показано ниже

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

в I2 при вызове onload окна ниже функции

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

это будет делать, как вы хотите.

...