A entender a janela.propriedade do evento e sua utilização
4 answers
Aqui o que w3school diz sobre event
objecto:
Os eventos são acções que podem ser detectadas pelo JavaScript, e o evento o objecto dá informações sobre o evento que ocorreu.
Às vezes queremos executar um JavaScript quando um evento ocorre, tal como quando um usuário clica um botão.
Pode lidar com eventos usando:
node.onclick = function(e) {
// here you can handle event. e is an object.
// It has some usefull properties like target. e.target refers to node
}
No entanto, o Internet Explorer não passa eventos para o handler. Em vez disso, pode usar a janela.objecto do evento que está a ser actualizado imediatamente após o evento ter sido disparado. Então a maneira crossbrowser de lidar com os Eventos:
node.onclick = function(e) {
e = e || window.event;
// also there is no e.target property in IE.
// instead IE uses window.event.srcElement
var target = e.target || e.srcElement;
// Now target refers to node. And you can, for example, modify node:
target.style.backgroundColor = '#f00';
}
Não tenho certeza se esta diferença foi alterada em versões mais recentes do navegador, mas basicamente, "no Microsoft event accessing model há uma janela de propriedade especial.evento que contém o último evento que ocorreu."(de referência)
Então, para escrever um controlador de eventos compatível entre navegadores, você precisa fazer algo assim:function doSomething(e) {
if(!e) {
var e = window.event;
}
var ele = e.target || e.srcElement;
// get the clicked element
// srcElement for IE, target for others
}
element.onclick = doSomething;
Referência: http://www.quirksmode.org/js/events_access.html
function IndentifyMe(){
alert("You clicked on " + window.event.srcElement.tagName);
}
<body onclick = "IndentifyMe()">
Tente este código, com muitos elementos na etiqueta corporal, e tente carregar em diferentes elementos
Os Eventos {[3] } são a força vital da interacção do utilizador. Sem Eventos, você não conseguia interagir com a página.
Os manipuladores de eventos são usados para invocar algum JavaScript quando uma determinada acção acontece. Se quiseres. o comportamento a despoletar quando o utilizador mover o seu cursor por cima de um elemento, você irá usar o cursor onmouseover manipulador.
"DOM Scripting: Web Design with JavaScript and The Document Object Model: Second Edition"