Как поймать клики по интерактивным ссылкам в расширении Chrome?

Я использую content_scripts в расширении Chrome, чтобы поймать событие открытия нового сайта. Но когда я нажимаю на этот сайт ссылку, которая перенаправляет меня на дочерний сайт, событие не запускается.

Это не обычный сайт, который использует перезагрузку для обработки кликов по ссылкам. После нажатия на ссылку меня перенаправляют на что-то вроде (AJAX?):

http://somesite.com/page#something

Так что я полагаю, что это динамически загружается. Как обрабатывать все события перезагрузки этой страницы?

Как отловить каждое событие загрузки страницы не только вводом в поле URL, но и переходом по ссылкам?


person Tomasz Smykowski    schedule 11.08.2011    source источник
comment
Для справки в будущем вы также можете использовать инструменты разработчика Chrome, чтобы настроить прослушиватель кликов для элемента (на вкладке «Сценарии» на правой панели прокрутите вниз до «Прослушиватель событий», разверните раздел «Мышь» и проверьте событие клика). Это заставит отладчик приостанавливаться при щелчке, и вы сможете проверить, что на самом деле происходит.   -  person Boris Smus    schedule 18.08.2011


Ответы (1)


Вам нужно будет перехватить событие mousedown. С JQuery это выглядит так:

$('a').mousedown(function(){
alert($(this).attr('href'));
});

Вам нужно будет проверить значение href для $(this), а затем сделать все, что вам нужно.

Похоже, что на странице, с которой вы работаете, есть фреймы, поэтому вам нужно "all_frames": true в манифесте в разделе content_scripts.

person Darin    schedule 13.08.2011