Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
BaCo
Сообщения: 76 Зарегистрирован: 28 дек 2010, 11:48
Сообщение
BaCo » 28 дек 2010, 16:05
Здравствуйте! Прошу привести пример работы с этим методом и обработчиком событий. Сам уже запарился. Сейчас пробую доставать адрес (после знака # в url) с помощью сессий:
Код: Выделить всё
if(isset($_GET['hash'])) $vkurlhash = htmlspecialchars($_GET['hash']);else $vkurlhash = "/";echo $vkurlhash;
Вообще ничего не показывает. Для обработки применяю:
Код: Выделить всё
<script type="text/javascript">$(document).ready(function() { var VK = new vk_api( 'secret', function () { VK.external.setLocation('{$vkurlhash}'); VK.addCallback("onLocationChanged", onLocationChanged); VK.external.setTitle(document.title); VK.external.resizeWindow(827, document.getElementById('page').clientHeight); } ); function onLocationChanged(loc) { if(window.location.pathname != loc && loc != '') { window.location.href = 'http://site.ru' + loc; } }});</script>
И еще вдогонку: разумно ли изменение размера страницы вне таймера, т.е. только 1 раз?
PS Использую JS Wrapper для работы с ВКонтакте vk-jsapi (
http://code.google.com/p/vk-jsapi/ )
BaCo
Сообщения: 76 Зарегистрирован: 28 дек 2010, 11:48
Сообщение
BaCo » 28 дек 2010, 19:34
Ну помогите! Самому не понять
BaCo
Сообщения: 76 Зарегистрирован: 28 дек 2010, 11:48
Сообщение
BaCo » 28 дек 2010, 20:38
Ладно, я ошибся насчет того, что сам не смогу понять
Другим решение пригодится. PHP обработка:
Код: Выделить всё
if(isset($_GET['hash'])) $vkurlhash = "'".htmlspecialchars($_GET['hash'])."'";else $vkurlhash = "window.location.pathname";
JavaScript:
Код: Выделить всё
VK.callMethod('setLocation', {$vkurlhash});VK.addCallback('onLocationChanged', onLocationChanged);function onLocationChanged(loc) { if(window.location.pathname != loc && loc != '') { window.location.href = '{$vkoptions['mysite']}' + loc; }}
Все оказалось очень просто
Александр
Создатель сайта
Сообщения: 4574 Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр » 28 дек 2010, 22:41
Данные после знака # в javascript можно достать так:
Код: Выделить всё
alert(location.hash);// и без знака #alert(location.hash.slice(1));