2016-07-13 5 views
0

Ich mache Erweiterung für mich selbst, und ich möchte Autofokus deaktivieren oder zumindest meine Funktion ausführen, bevor es sich konzentrieren.Wie kann Google Search Autofokus auf Tastendruck verhindert werden?

Ich habe versucht, diese Ereignisse zu targetieren: keypress, keyup, keydown, input auf window und document. Und Ereignis stoppen, indem Sie diese mit:

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; 
} 

Aber irgendwie Eingabefeld für die Suche wird noch ausgewählt, muss ich irgendwie alle Event-Handler entfernen?

Antwort

2

Ich fand es heraus, es ist der 3. Parameter.

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

wie 2 Minuten dauerten diese nach einigem Herzen zu lösen.

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); 
}); 
Verwandte Themen