2016-07-13 3 views
0

Я делаю расширение для себя, и я хочу отключить автофокус или, по крайней мере, запустить свою функцию, прежде чем она будет сфокусирована.как предотвратить поиск Google автофокуса на клавиатуре?

Я опробовал следующие мероприятия: keypress, keyup, keydown, input на window и document. И остановить событие с помощью этого:

document.addEventListener('keypress', stopEvent); 

document.addEventListener('keyup', stopEvent); 

document.addEventListener('keydown', stopEvent); 

document.addEventListener('input', stopEvent); 


document.body.addEventListener('keypress', stopEvent); 

document.body.addEventListener('keyup', stopEvent); 

document.body.addEventListener('keydown', stopEvent); 

document.body.addEventListener('input', stopEvent); 


window.addEventListener('keypress', stopEvent); 

window.addEventListener('keyup', stopEvent); 

window.addEventListener('keydown', stopEvent); 

window.addEventListener('input', stopEvent); 

function stopEvent(e) { 
e.stopImmediatePropagation(); 
e.stopPropagation(); 
e.preventDefault() 
return false; 
} 

Но как-то поле ввода для поиска по-прежнему получает выбран, мне нужно каким-то образом удалить все обработчики событий?

ответ

2

Я понял, это третий параметр.

useCapture https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

взял меня, как 2 минут, чтобы решить эту проблему через некоторое кардио.

function stopEvent(e) { 
    e.stopImmediatePropagation(); 
    //e.stopPropagation(); 
    //e.preventDefault() 
    //return false; 
} 

//var eles = [window, document, document.body]; 
var eles = [window]; 

eles.forEach(function(ele){ 
    ele.addEventListener('keypress',stopEvent,true); 
    ele.addEventListener('keyup',stopEvent,true); 
    ele.addEventListener('keydown',stopEvent,true); 
    ele.addEventListener('input',stopEvent,true); 
}); 
Смежные вопросы