[Javascript] IFrame, доступы
Столкнулся со следующей проблемой:
Есть хост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.
Проблема в правах возникает.
Хэлп плиз)
Вывод, в iFrame открывйте страницу, которая находится на том же хосте, что и основной сайт, а уже на эту страницу выводите скрипты ВК.обращение как обычно... из айфрейма parent.document, с номновной getElementById
100500 тем по этому поводу было, даже на этом форуме.
Мне нужно не ВК подключить, а сделать аналог API. ВК же как-то обходит приватности. Ссылки на темы можно, если такое уже было?
а причем тут api к Iframe ?
Расскажите мне тоже, чего там ВК обходит
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. И с ним уже общаться.
Цитата: Vidog
Не через ajax же делать это всё..
почему?
Потому, что обращений будет много из фрейма и во фрейм. Я делаю API для своего сервиса. Будет что-то вроде приложений ВК, но своя специфика. Нужно реализовать простой обмен данными между приложением и родительским окном.
Есть вот такая вещица:
http://javascript.ru/ajax/cross-origin-2
Вполне подходит, но HTML5 пока далеко не все браузеры поддерживают и съедят это.
а апишка контакта, фейсбука.. на аяксе и организована.