Пытается добавить слушателя событий размытия

У меня есть окно поиска на сайте, над которым я работаю, и я хотел бы отслеживать поисковые запросы, которые ищут люди.

Так как окно поиска автоматически угадывает, что кто-то печатает, и ищет его, события щелчка нет.

В консоли textContent, который я хочу, когда происходит размытие, является.textContent этого:

myVar = document.querySelectorAll('.twitter-typeahead > span')[2]

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

myVar.addEventListener('blur', function(){dataLayer.push({'event':'bla'})})

После ввода всего этого в консоли я не вижу каких-либо значений, помещаемых в dataLayer, что заставляет меня думать, что событие размытия не работает (в отличие от функции dataLayer.push.)

Страница с поисковой строкой находится здесь.

Как бы я прикрепил событие размытия к кому-то, не отображающему окно поиска?

1 ответ

Решение

Вы должны добавить blur слушатель окна поиска, а не span:

searchbox = document.getElementById('searchboxID');
searchbox.addEventListener('blur', function() {
    var input = this.value;
    // Do whatever you want with the input
});

ES6 предоставляет еще более короткие возможности:

let el = document.getElementById('id');

el.addEventListener('blur', () => console.log(this));
Другие вопросы по тегам