выполните функцию JavaScript в другом iframe, когда родитель будет от другого домена

Страница A.com имеет 2 iframes 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);

Там какой-либо путь состоит в том, чтобы сделать это?

6
задан Frushko 13 June 2010 в 15:30
поделиться

4 ответа

Вместо

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

используйте

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

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

8
ответ дан 10 December 2019 в 00:33
поделиться

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

0
ответ дан 10 December 2019 в 00:33
поделиться

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

2
ответ дан 10 December 2019 в 00:33
поделиться

Как заявляет Аарон, нельзя взаимодействовать между фреймами iframe, но вам следует взглянуть на easyXDM, он помогает в междоменном взаимодействии в javascript:

http: // easyxdm. net / wp /

Вот пример, который вы, возможно, ищете:

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

0
ответ дан 10 December 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: