Можно ли использовать BHO (IE8) для отслеживания ссылок, на которые нажимает пользователь? - PullRequest
0 голосов
/ 28 января 2011

Читая о BHO, и я знаю, что вижу способы, с помощью которых вы можете отслеживать навигацию пользователя - однако - возможно ли с BHO определить, по какой ссылке щелкнул пользователь (например, если на странице существуют две ссылки) в котором пользователь может щелкнуть, чтобы перейти к пункту назначения a - возможно ли определить, по какой ссылке был фактически нажат)?

Ответы [ 3 ]

1 голос
/ 02 февраля 2011

Вы можете поглотить событие DISPID_HTMLELEMENTEVENTS2_ONCLICK , если можете получить доступ к элементам (иногда вы не можете получить доступ к элементам в кадре в другом домене)

О, и не забудьте отключить ваши события в BeforeNavigate2.

Проблема в том, что нет надежного способа обнаружения обновления страницы для повторного подключения событий или обработки элементов, сгенерированных из сценариев (Ajax).

0 голосов
/ 28 января 2011

У вас есть две идентичные ссылки, и вы хотите знать, на какую кнопку нажали?

Почему бы просто не добавить уникальный параметр URL к каждому из них:

<a href='mylink.html?tracking=linkA'>click me</a>
<a href='mylink.html?tracking=linkB'>click me</a>

Тогда в журналах вашего сервера будет указано, какой из них был нажат. Нет необходимости в каких-либо специфичных для IE взломах.

0 голосов
/ 28 января 2011

Да, вы можете.BHO - это код C ++, работающий внутри процесса IE, поэтому он имеет доступ ко всей памяти и может делать практически все, что в нем есть (работа с вещами вне процесса является отдельной темой и строго ограничена IE).

...