Страница 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);
Там какой-либо путь состоит в том, чтобы сделать это?
Вместо
parent.window.frames['iframe1'].SomeFunction(args);
используйте
parent.frames['iframe1'].SomeFunction(args);
Вам разрешено перемещаться по коллекции кадров
любого окна, на которое вы можете ссылаться, но в этом случае вы пытаетесь пройти свойство рекурсивного окна
родительского элемента
(которое является окном). Это не разрешено.
Как уже сказал вам Аарон, браузеры не позволяют этого, но есть способы обойти это. Вам нужно будет создать небольшой хак. Об этом Евгений Гладышев опубликовал в своем блоге .
Нет, браузер не разрешает взаимодействие между фреймами iframe, которые вообще не находятся в одном домене.
Как заявляет Аарон, нельзя взаимодействовать между фреймами iframe, но вам следует взглянуть на easyXDM, он помогает в междоменном взаимодействии в javascript:
Вот пример, который вы, возможно, ищете:
http://easyxdm.net/wp/2010/03/17/sending-and-receiving-messages/