javascript, js - доступ к функции js внутри iframe из родительского окна - PullRequest
0 голосов
/ 20 мая 2011

Всем доброго времени суток.

У меня есть следующие настройки:

Страница с html, js и т. Д. (Обычные вещи) и iFrame.В iFrame у меня есть функция, которая что-то делает (что угодно .. оповещение («тест»); например).

Мне нужно запустить эту функцию, если я нажму кнопку на главной странице.

Например, если я нажимаю кнопку оповещения на главной странице, в iFrame должно появиться предупреждение сслово «тест».

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

document.frames[n] сделать фреймы доступными в порядке их появления в документе.поэтому document.frames[0].contentWindow.myFunction() будет вызывать вашу функцию внутри фрейма в случае, если iframe является единственным фреймом.

Вызов функции в главном окне из фрейма работает через top, как top.myFunction().Если вы просто хотите подняться на один уровень выше, используйте parent.

0 голосов
/ 06 августа 2012

Для еще большей прочности:

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();
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...