Отслеживание действий пользователя
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 06.06.15 04:39
Оценка:
Понадобилось необычное.

Есть HTML-приложение, где пользователь должен вводить некоторые данные. Для поиска этих данных пользователь открывает другие сайты чтобы найти нужные данные.
Для улучшения качества этого процесса очень хотелось бы записывать действия пользователя. В идеале нужно примерно следующее:
— Пользователь запускает наше приложение
— Кликает на ссылку, открывается новое окно или вкладка браузера
— Пользователь находит в этой вкладке нужную информацию и начинает её вводить в нашу форму
— После ввода текста наше приложение просит пользователя указать, где именно на сайте он это нашёл
— Пользователь возвращается на ту вкладку, выделяет мышкой нужное место, кликает правой кнопкой и выбирает какой-нибудь пункт во всплывающем меню
— Наше HTML-приложение каким-то образом получает ссылку на тот блок, который пользователь выделил

Нужно это для того, чтоб в следующий раз, если понадобится проверить, не устарели ли эти данные, мы могли бы проверить это автоматически — запросить HTML-ку сайта, найти нужное место и сравнить содержимое с тем, что там было при первой проверке.

Возможно ли вообще сделать такое только средствами браузера? Идеальным было бы реализовать это средствами JavaScript, но я подозреваю, что JavaScript не даст нам получать данные с другой страницы, даже если она была открыта по нашей ссылке. Пользователя можно попросить поставить нужные плагины, если это нужно. Если задача реализуема написанием плагина — могу и плагин написать, только требуется пинок в нужном направлении, как вообще к этой задаче подойти.
С уважением, Artem Korneev.
Re: Отслеживание действий пользователя
От: Гест Украина https://zverok.github.io
Дата: 06.06.15 07:02
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Возможно ли вообще сделать такое только средствами браузера? Идеальным было бы реализовать это средствами JavaScript, но я подозреваю, что JavaScript не даст нам получать данные с другой страницы, даже если она была открыта по нашей ссылке. Пользователя можно попросить поставить нужные плагины, если это нужно. Если задача реализуема написанием плагина — могу и плагин написать, только требуется пинок в нужном направлении, как вообще к этой задаче подойти.


Ключевое слово — букмарклет. Пользователь вешает себе «закладочку» на панель закладок, адрес которой выглядит как
[js]
javascriptfunction(){
})();
[/js]

При её нажатии в любую страницу может инджектиться код, который например а) берёт адрес страницы; б) берёт выделенный пользователем кусок текста и в) отправляет всё это на ваш сайт. Многие штуки типа Tumblr или del.icio.us так делают.
Re[2]: Отслеживание действий пользователя
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 08.06.15 05:58
Оценка:
Здравствуйте, Гест, Вы писали:

Г>Ключевое слово — букмарклет. Пользователь вешает себе «закладочку» на панель закладок [...]

Г>При её нажатии в любую страницу может инджектиться код, который например а) берёт адрес страницы; б) берёт выделенный пользователем кусок текста и в) отправляет всё это на ваш сайт.

Вариант интересный, но боюсь что для моего случая не подойдёт.
Мне нужно отправлять это не на сайт, а в другое HTML-приложение. Там нужно ведь передавать ещё контекстную информацию — ну хотя бы ID сессии, чтоб потом можно было эти данные отделить от других. Передавать это как параметры на ту вторую страницу врятли получится — пользователь вполне может перейти там ещё по двум-трём ссылкам и все параметры сбросятся.

А можно ли как-то передать это через куки? Ну т.е. открыть новую страницу в отдельной вкладке, но при этом передать какие-то куки, которые можно было бы прочитать из того куска JS-кода чтоб отправить на сервер.
С уважением, Artem Korneev.
Re[3]: Отслеживание действий пользователя
От: Гест Украина https://zverok.github.io
Дата: 08.06.15 07:36
Оценка: 66 (2)
Здравствуйте, Artem Korneev, Вы писали:

Г>>Ключевое слово — букмарклет. Пользователь вешает себе «закладочку» на панель закладок [...]

Г>>При её нажатии в любую страницу может инджектиться код, который например а) берёт адрес страницы; б) берёт выделенный пользователем кусок текста и в) отправляет всё это на ваш сайт.

AK>Вариант интересный, но боюсь что для моего случая не подойдёт.

AK>Мне нужно отправлять это не на сайт, а в другое HTML-приложение. Там нужно ведь передавать ещё контекстную информацию — ну хотя бы ID сессии, чтоб потом можно было эти данные отделить от других. Передавать это как параметры на ту вторую страницу врятли получится — пользователь вполне может перейти там ещё по двум-трём ссылкам и все параметры сбросятся.

AK>А можно ли как-то передать это через куки? Ну т.е. открыть новую страницу в отдельной вкладке, но при этом передать какие-то куки, которые можно было бы прочитать из того куска JS-кода чтоб отправить на сервер.


Ну, вы довольно абстрактно описываете задачу, но я вот перечитал исходное письмо:

— Пользователь запускает наше приложение
— Кликает на ссылку, открывается новое окно или вкладка браузера
— Пользователь находит в этой вкладке нужную информацию и начинает её вводить в нашу форму
— После ввода текста наше приложение просит пользователя указать, где именно на сайте он это нашёл
— Пользователь возвращается на ту вкладку, выделяет мышкой нужное место, кликает правой кнопкой и выбирает какой-нибудь пункт во всплывающем меню
— Наше HTML-приложение каким-то образом получает ссылку на тот блок, который пользователь выделил

...и мне кажется, что самый правильный путь (если это возможно в вашем случае) — объединить шаги «находит в этой вкладке нужную информацию и начинает её вводить в нашу форму» и «возвращается на ту вкладку, выделяет мышкой нужное место». Я себе это как-то так представляю (опять же, на примере тумблера — попробуйте, как его букмарклет работает!):
* вы отправляете пользователя на сайт по ссылке
* найдя там нужную информацию, он её выделяет, а затем нажимает на ваш букмарклет на своей панели закладок
* букмарклет делает следующее:
а) считывает со страницы её адрес + что там было выделено
б) открывает поверх страницы всплывающее окно — вашу форму (адрес всплывающего окна будет типа вашсайт/вашаформа, поскольку это страница открытая с вашего сайта, у ней есть вся информация о сессии и куках) и передаёт в неё информацию с шага (а)
в) пользователь заполняет форму, она отправляется на ваш сервер + вместе с ней отправляется информация «а что было выделено и на какой странице»

Как-то так.

Вот картинка использования тумблерского букмарклета на этом самом сообщении (текст я не вводил, просто выделил и нажал на букмарклет):
  скриншот
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.