如何确定当前元素是窗口

时间:2012-07-12 15:34:46

标签: javascript javascript-events

我将一些事件处理程序附加到不同的元素,例如input,select ...和window。如果当前元素是窗口或常见的html元素,我需要检查内部处理程序。我应该如何进行检查?

示例:

  

inputTextEl.attachEvent(“some event”,handler);

     

inputButtonEl.attachEvent(“some event”,handler);

     

window.attachEvent(“some event”,handler);

 var handler = function (eventName) {
    return function () {
    var message = '[' + eventName + ']';
     if (window.event) {
        message += ' eventType: ' + window.event.type;

        var target = window.event.srcElement || window.event.target;
        var id = target.id;
        if (id == '') {
                  id = target.parentNode.id;
        }
        message += ' ;eventTarget: ' + id;
     } else {
           message += ' window.event - undefined';
     }
     console.log(message); 
}; };

2 个答案:

答案 0 :(得分:0)

您可以在函数处理程序

中使用以下代码进行IE
alert(Window.event.srcElement.tagName );

对于Firefox和Chrome使用

   alert(this.tagName);

答案 1 :(得分:0)

有些浏览器使用event.target,有些浏览器使用event.srcElement

function handler(ev) {
    var event = window.event || ev;
    var target = event.srcElement || event.target;
    // event has the lowest-level element that is the target of the event
}

大多数事件永远不会以window为目标,因为您无法单击/鼠标悬停/等窗口本身;相反,您可以对窗口中的特定元素执行这些操作。