Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[Javascript] IFrame, доступы

51K
05 ноября 2011 года
Vidog
16 / / 25.12.2009
Всем привет!

Столкнулся со следующей проблемой:
Есть хост1, к примеру api.dev и есть хост2, к примеру app.dev
api.dev выдает iframe на app.dev, а app.dev содержит в коде
<script src="http://api.dev/api.js">

Вопрос таков:
Каким образом из фрейма через api.js получать доступ к родительскому окну (api.dev)? Доступ, например, к какому-нибудь JS объекту.
Как это делает API приложений ВК. Их сорцы смотрел - разобрать не смог ничего.

И еще - app.dev не должен иметь доступ, только api.js.

Проблема в правах возникает.

Хэлп плиз)
369
05 ноября 2011 года
Kesano
451 / / 09.10.2007
Ну вообщего, JS не может получить доступ из iFrame к родителю (и наоборот), если домены не совпадают полностью (даже WWW).
Вывод, в iFrame открывйте страницу, которая находится на том же хосте, что и основной сайт, а уже на эту страницу выводите скрипты ВК.обращение как обычно... из айфрейма parent.document, с номновной getElementById
278
06 ноября 2011 года
Alexander92
1.1K / / 04.08.2008
[:||||||||:]
100500 тем по этому поводу было, даже на этом форуме.
51K
06 ноября 2011 года
Vidog
16 / / 25.12.2009
Мне нужно не ВК подключить, а сделать аналог API. ВК же как-то обходит приватности. Ссылки на темы можно, если такое уже было?
274
06 ноября 2011 года
Lone Wolf
1.3K / / 26.11.2006
а причем тут api к Iframe ?
14
06 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Расскажите мне тоже, чего там ВК обходит
51K
07 ноября 2011 года
Vidog
16 / / 25.12.2009
Блин.. Не знаю как объяснить.

1й документ:
<html>
<head>
<title>Сайт на domain1.com</title>
<script>
var myobj = {a: '10', b: '20'};
</script>
</head>
<body>
<iframe src="http://domain2.com" />
</body>
</html>

2й документ:
<html>
<head>
<script src="http://domain1.com/api.js" />
<title>Сайт на domain2.com</title>
<script>
myobj.a = '100';
myobj.b = '200';
...
</script>
</head>
<body>

</body>
</html>

На втором сайте нужно иметь доступ к родителю. Как реализовано iframe-api ВКонтакте. Нужно обращаться к какому-то объекту и получать ответ. Не через ajax же делать это всё.. Какой-то транспорт может быть, я думаю..

Как видно - api.js открывается с первого сайта, но инклудится вторым..

Есть пока одна только идея - создать транспорт вида iframe уже внутри этого фрейма, ведущий на domain1.com. И с ним уже общаться.
274
07 ноября 2011 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: Vidog
Не через ajax же делать это всё..


почему?

51K
07 ноября 2011 года
Vidog
16 / / 25.12.2009
Потому, что обращений будет много из фрейма и во фрейм. Я делаю API для своего сервиса. Будет что-то вроде приложений ВК, но своя специфика. Нужно реализовать простой обмен данными между приложением и родительским окном.
51K
07 ноября 2011 года
Vidog
16 / / 25.12.2009
Даже аякс не спасёт, нужно будет юзать websocket или coment в таком случае. Скорость из-за этого существенно упадёт И будет не очень эффективно.

Есть вот такая вещица:
http://javascript.ru/ajax/cross-origin-2

Вполне подходит, но HTML5 пока далеко не все браузеры поддерживают и съедят это.
274
07 ноября 2011 года
Lone Wolf
1.3K / / 26.11.2006
ну так а чт овы хотите? вам написали выше. Если в ифреймах разные домены - то ничего у вас не выйдет. все. точка.
а апишка контакта, фейсбука.. на аяксе и организована.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог