Как вызвать iframe, чтобы что-то сделать? - PullRequest
1 голос
/ 21 августа 2011

Вот ситуация .... У меня есть iframe, который расположен на моей стороне клиента, а содержимое iframe находится на моем сервере.Поэтому, когда пользователь что-то делает, появляется мой iframe, который может что-то напечатать и опубликовать на моем сервере.Но вопрос в том, что ... сам iframe не может исчезнуть.Единственное, что я хочу сделать, это отправить и скрыть iframe.Я могу сделать кнопку на стороне клиента, чтобы скрыть мой iframe, но iframe не может контролировать js на стороне клиента.И клиентская сторона также не может управлять кнопкой на моем iframe.Итак, я думаю сделать кнопку на стороне клиента и какую-то команду для отправки кнопки .... Но вопрос в том, как я могу это сделать?Спасибо.

Ответы [ 2 ]

3 голосов
/ 21 августа 2011

iframe и родительский документ могут общаться через javascript:

  • iframe доступен для документа следующим образом: window.frames["iframe_name"].Это window объект iframe, с этого момента вы можете делать практически все с помощью js.
  • окно родительского документа доступно для iframe через window.opener.Опять же, это window родительского документа.

Может быть этот вопрос вам тоже поможет.

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