выполнить функцию javascript в другом iframe, когда parent находится в другом домене - PullRequest
6 голосов
/ 13 июня 2010

Страница A.com имеет 2 фрейма B.com / page1 и B.com / page2 .Это код A.com:

<html><body>
    <iframe src="b.com/page1" name="iframe1" id="iframe1">
    <iframe src="b.com/page2">
</body></html>

Я хочу выполнить функцию js на B.com / page1 с B.com / page2 .Оба приведенных ниже примера хорошо работают, когда родитель находится в одном домене, но не в междоменном сценарии:

parent.window.frames['iframe1'].SomeFunction(args);

или

parent.document.getElementById('iframe1').contentWindow.SomeFunction(args);

Есть ли способ сделать это?

Ответы [ 4 ]

8 голосов
/ 14 июня 2010

Вместо

parent.window.frames['iframe1'].SomeFunction(args);

используйте

parent.frames['iframe1'].SomeFunction(args);

Вам разрешено просматривать коллекцию frames любого окна, на которое вы можете ссылаться, но в этом случае вы пытаетесьпройти рекурсивное window свойство parent (которое является окном).Это не разрешено.

2 голосов
/ 13 июня 2010

Нет, браузер не позволяет взаимодействовать между фреймами, которые вообще не находятся в одном домене.

0 голосов
/ 14 июня 2010

Как утверждает Аарон, ему не разрешено взаимодействовать между iframe, но вы должны взглянуть на easyXDM, это помогает с междоменной связью в JavaScript:

http://easyxdm.net/wp/

Вот пример, который вы можете искать:

http://easyxdm.net/wp/2010/03/17/sending-and-receiving-messages/

0 голосов
/ 13 июня 2010

Как уже сказал Аарон, браузеры не позволяют этого, но есть способы обойти это.Вам нужно будет создать небольшой взломать.У Евгения Гладышева есть запись в его блоге .

...