Я работаю над расширением для браузера, которое должно совершать вызов при обслуживании новой мгновенной страницы Google, а затем изменять результаты (например, SEOQuake).
Проблема: если пользователь вставит ссылку прямо в поле URL-адреса и нажмет Enter, произойдет загрузка новой страницы, и мое расширение запустится. Однако с Google Instant, хотя URL-адрес меняется по мере ввода запросов, технически вы все еще находитесь на той же странице, поэтому расширение не запускается.
Я посмотрел на код SEOQuake, и похоже, как они решают проблему:
document.body.addEventListener("DOMNodeInserted", sq_bindAsEventListener(this, function(event) { //
Это отличное решение, однако оно не идеально для меня, потому что, насколько я знаю, DomNodeInserted не поддерживается IE ниже версии 9. (сюрприз!)
Я связываю jQuery с приложением, поэтому у меня есть доступ ко всем функциям jQuery. Я думал об использовании .keypress() и просто подождал, пока в течение секунды не будет ввода - если это Google Instant, я точно знаю, что страница изменилась.
Еще одна мысль, которая у меня была, — следить за изменением URL-адреса; Кажется, я не могу найти какие-либо функции jquery или javascript, которые отслеживают, был ли изменен URL-адрес.
Как лучше всего узнать, что был выполнен мгновенный поиск Google?