Dato questo pezzo di codice HTML:
<a href='https://facebook.com/'>Facebook</a>
<a href='https://google.ca/'>Google</a>
<input type='text' placeholder='an input box'>
possiamo usare questa JavaScript:
function checkTabPress(e) {
'use strict';
var ele = document.activeElement;
if (e.keyCode === 9 && ele.nodeName.toLowerCase() === 'a') {
console.log(ele.href);
}
}
document.addEventListener('keyup', function (e) {
checkTabPress(e);
}, false);
Ho legato un event listener all'elemento document
per l'evento keyUp
, che innesca una funzione di controllare se è stato premuto il tasto Tab (o tecnicamente, rilasciato).
La funzione controlla lo currently focused element e se lo NodeName
è a
. In tal caso, inserisce il blocco if
e, nel mio caso, scrive il valore della proprietà href
nella console JavaScript.
Ecco un jsFiddle
fonte
2013-08-19 14:50:19
Guardare il 'document.activeElement' per ottenere l'elemento attualmente attivo (se presente, o' body'). Puoi controllare che '.nodeName.toUpperCase() ===" a "' e poi leggere la sua proprietà '.href' – Ian
Dai un'occhiata a questa domanda (non testarla). http://stackoverflow.com/questions/11277989/how-to-get-the-focused-element-with-jquery –
@Ian Intendevi '.toLowerCase()'? –