Комментарии 21
После нажатия на «авторизоваться», в открывшемся окне постоянный релоад окна. Опера 11.00(1156).
Закрыт доступ к домену vkontakte.ru. Сделайте возможность логиниться на vk.com.
Кстати, это было бы хорошее правило, поскольку тот же vkontakte.ru заблочен на рабочих местах многих компаний. Так зачем же запрещать нерадивым сотрудникам тратить время на свою программу? :) Пусть работает при любых условиях :)
Даже если подключать API с vk.com, то сами вызовы методов API будут идти на адрес api.vkontakte.ru и эту настройку нельзя изменить.
«Вы можете производить запросы к API ВКонтакте путем создания HTTP-запроса (POST или GET) к адресу API-сервиса api.vkontakte.ru/api.php или api.vk.com/api.php в зависимости от того, откуда запускается приложение.»
Это уже не будет использованием Open API.
Спорить не буду, не силен я в эти апи-шмапи. Но поясните пожалуйста более развернуто, мне правда интересна эта тема.
Похоже это будет Web API.
По этой ссылке описано обычное обращение к ВКонтакте API. Open API имеет метод VK.Api.call, который выполняет всю необходимую работу по вызову ВКонтакте API — вычисляет подпись, формирует нужный запрос, но при этом в нем жестко задан адрес, по которому происходит обращение.
«У вас недостаточное количество друзей для начала игры» и я наигрался.
Было бы полезным для меня что бы при нехватке друзей подставлялись какие нибудь картинки.
Было бы полезным для меня что бы при нехватке друзей подставлялись какие нибудь картинки.
НЛО прилетело и опубликовало эту надпись здесь
FireBug может пройти игрульку за минимально возможные 64 хода )
Copy Source | Copy HTML
- function findPair(i, j){
- var id=field[i][j].id, x, y;
- for(x= 0; x<8; x++)
- for(y= 0; y<8; y++)
- if(field[x][y]!=null)
- if(!(i==x && j==y))
- if(field[x][y].id==id){
- return [x, y];
- }
- }
-
- var links=Array();
- $('table#game-field td a').each(function(){links.push($(this))});
-
- timer=setInterval(function(){
- if(links.length<= 0)
- clearInterval(timer);
-
- var el = links.pop();
- var image = $('img', el);
-
- if(image.src!="./images/cleared.jpg"){
- var parentCell = el.parent('td');
- var parentRow = parentCell.parent('tr');
- var i = $('table#game-field tr').index(parentRow);
- var j = $('td', parentRow).index(parentCell);
- var pair=findPair(i, j);
-
- el.click();
- $('table#game-field tr').slice(pair[ 0], pair[ 0]+1).find('td').slice(pair[1], pair[1]+1).find('a').click();
- }
- }, 1000);
Исправьте, пожалуйста, свои циклы for в примерах. Вот это неверно:
for(i = 0; i < data.response.length; i++)
Можно поточнее?
Да, конечно.
i тут — свободная переменная, она не является локальной для вашей анонимной функции, конкретное ее значение и поведение зависит от лексического окружения коллбека.
Если вы не оборачивали код в какие-то дополнительные функции (не приведенные в примерах), то i свяжется с «глобальной» window.i, соответственно при изменении i в цикле будет меняться не локальная переменная коллбека i, как, вероятно, подразумевалось, а window.i.
У вас таких циклов 2, и оба они будут менять эту глобальную переменную. Таким образом очень просто словить непонятные ошибки, когда переменная неведомым образом неожиданно меняет свое значение. Вы мусорите в глобальном контексте (что может повлиять на работу других скриптов).
Особенно было бы весело вызвать внутри этого цикла другую функцию с похожим образом написанным циклом. В коде сейчас этого нет, но это все равно потенциальная ошибка. Следите за такими вещами внимательнее и не забывайте расставлять var там, где это необходимо. Если непонятно, где необходимо — почитайте где-нибудь про замыкания в js.
i тут — свободная переменная, она не является локальной для вашей анонимной функции, конкретное ее значение и поведение зависит от лексического окружения коллбека.
Если вы не оборачивали код в какие-то дополнительные функции (не приведенные в примерах), то i свяжется с «глобальной» window.i, соответственно при изменении i в цикле будет меняться не локальная переменная коллбека i, как, вероятно, подразумевалось, а window.i.
У вас таких циклов 2, и оба они будут менять эту глобальную переменную. Таким образом очень просто словить непонятные ошибки, когда переменная неведомым образом неожиданно меняет свое значение. Вы мусорите в глобальном контексте (что может повлиять на работу других скриптов).
Особенно было бы весело вызвать внутри этого цикла другую функцию с похожим образом написанным циклом. В коде сейчас этого нет, но это все равно потенциальная ошибка. Следите за такими вещами внимательнее и не забывайте расставлять var там, где это необходимо. Если непонятно, где необходимо — почитайте где-нибудь про замыкания в js.
Спасибо за примеры и статью. Скажите, насколько легко преобразовать ваше приложение в iframe-приложение? (с примером, если можно)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Интеграция с ВКонтакте на базе Open API