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