Как вызвать функцию javascript внутри смежного фрейма - PullRequest
0 голосов
/ 12 сентября 2010

У меня есть HTML-страница, где у меня есть этот макет по существу:

<html>
<body>

<!-- iFrame A -->
<iframe></iframe>

<!-- iFrame B -->
<iframe></iframe>
</body>
</html>

В IFRAME "B" я бы хотел вызвать функцию js в IFRAME "A", которая в конечном итоге изменит свойство window.location и перенаправит страницу. У меня также есть jquery, но я не смог найти способ вызвать что-то в соседнем кадре.

Есть предложения?

Ответы [ 3 ]

7 голосов
/ 12 сентября 2010

Предполагается, что все находятся в одном домене, и у вас есть два iframe с идентификаторами "iframe-a" и "iframe-b", с jQuery в родительском:

В кадре A:

function foo() {
  alert("foo from frame A");
}

Из кадра b:

window.parent.$("#iframe-a")[0].contentWindow.foo();

И вы должны увидеть «foo из кадра A», получив предупреждение.

1 голос
/ 12 сентября 2010

В некоторых браузерах массив window.frames заполняется только в случае именования кадров, а не только с идентификатором Если кадры названы, а содержимое происходит из одного источника (домен, порт, протокол), то window.frameb.functionName() вызовет функцию в стандартном JavaScript. Смотрите другие ответы для jQuery версии

0 голосов
/ 12 сентября 2010

Используйте window.parent, чтобы получить родительский элемент (главное окно), затем используйте window.frames в родительском окне, чтобы получить кадр B. Оттуда вызовите свою функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...