Javascript: Запрет отправки запроса

Discussion in 'PHP' started by daniel777, 21 Aug 2012.

  1. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    В социальной сети Вконтакте при переписке в "Диалогах" есть уведомление о наборе сообщения "[​IMG] Даня набирает сообщение...".
    Мне стало интересно как отключить это уведомление.
    Включив сниффер я увидел что при изменении поля ввода сообщения отсылается POST запрос на http://vk.com/al_im.php с такими данными:
    act=a_typing
    al=1
    hash=122b0365c4808a0bad
    peer=айди собеседника


    Далее я начал поиск в исходном коде функции, которая отвечает за это уведомление.
    Были найдены два файла:
    http://vk.com/js/al/notifier.js
    http://vk.com/js/al/im.js

    Предположительно вот кусок кода, который отвечает за эту функцию:
    Code:
      onMyTyping: function (peer) {
        peer = intval(peer);
        var tab = cur.tabs[peer];
        if (peer <= 0 || !tab) return;
        var ts = vkNow();
        if (cur.myTypingEvents[peer] && ts - cur.myTypingEvents[peer] < 5000) {
          return;
        }
        cur.myTypingEvents[peer] = ts;
        ajax.post('al_im.php', {act: 'a_typing', peer: peer, hash: tab.hash});
      }
    Для отключения этой функции я использовал такой код:
    Code:
    IM.onMyTyping = function () {
    return false;
    }
    Выполнение этого кода на странице привело к тому, что у собеседника стало выводится вместо полного сообщения лишь картинка [​IMG].

    Прошу помощи в решении двух задач:
    1)Всётаки запретить этот запрос так, чтобы у собеседника не появлялось уведомление.
    2)Попытатся изменить этот запрос, вероятно что есть возможность отправить другие данные.
     
  2. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    1. Попробуй ничего не отправлять, т.е. просто return;
    2. я заметил что там ещё участвует вот это
    notifier.js 3609
    Code:
    addEvent(tab.txt, 'keydown focus mousedown keyup', function (e) {
    if (e.type == 'mousedown') {
    if (curRBox.active == tab.box.id) {
    (e.originalEvent || e).cancelBubble = true;
    }
    return;
    }
    if (e.type == 'keydown' && !(e.shiftKey || e.metaKey || e.ctrlKey) && (e.keyCode == KEY.RETURN || e.keyCode == 10)) {
    FastChat.send(peer);
    return cancelEvent(e);
    По всей видимости вешается ивенты ещё, в результате которого выполняется FastChat.send(peer);
    Где этот чат я не понял (не дружу с вк), поэтому не стал вдаваться в подробности. Но тебе проще будет вооружиться ещё дебагером.
     
  3. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    168
    Reputations:
    65
    Melfis прав, логичнее просто отключать функцию хука клавиш.
     
Loading...