JavaScript事件处理程序

JavaScript事件处理程序,javascript,dom-events,Javascript,Dom Events,我试图弄清楚如何以编程方式将事件处理程序添加到JavaScript对象。更具体地说,我尝试将事件处理程序添加到窗口对象的onunload事件中。我正在这样尝试,但没有任何运气: var url = "www.somelocation.com"; var specs = "location=0,menubar=0,status=0,titlebar=0,toolbar=0"; var dialogWindow = window.open(url, "dialog", specs, true);

我试图弄清楚如何以编程方式将事件处理程序添加到JavaScript对象。更具体地说,我尝试将事件处理程序添加到窗口对象的onunload事件中。我正在这样尝试,但没有任何运气:

var url = "www.somelocation.com";
var specs = "location=0,menubar=0,status=0,titlebar=0,toolbar=0";

var dialogWindow = window.open(url, "dialog", specs, true);
dialogWindow.onunload += myEventHandler;

function myEventHandler(e)
{
  // Do stuff
}

我猜我的语法不正确。然而,我似乎找不到任何有关这方面的文件。有人能帮我吗?

dialogWindow.onunload+=myEventHandler不正确。这应该是:

dialogWindow.unload = myEventHandler;
或保留现有处理程序:

var oldHandler = dialogWindow.unload;
dialogWindow.unload = function (e) 
{
   if (oldHandler) { oldHandler(e); }
   myEventHandler(e);
}

当然,Javascript只管理对象。包括HTML5在内的HTML DOM元素都是对象,我们可以将它们分类如下:

  • 包含所有事件的窗口对象
  • 与窗口一样完整的IFRAME对象(这就是Youtube使用它的原因)
  • 只有管理事件的DOM对象,单击,鼠标悬停,鼠标向下。。。以及他们自己的活动(音频、视频、DIV块)等
  • 构建JAVASCRIPT对象有点像Visual Basic或C++

    事件很容易管理,我们可以将智能手机和计算机的事件混合在一起。为了确保对旧浏览器SAFARI的支持,即,只需避免使用某些关键字,如(LET、=>,或函数参数中的值,如X=1)

    活动管理:

        var mouseup = (!('ontouchstart' in document.documentElement))? 'mouseup':'touchend';
        var winresize = (!('ontouchstart' in document.documentElement))? 'resize':'orientationchange';
        var mouseover = (!('ontouchstart' in document.documentElement))? 'mouseover':'touchstart';
        var mouseout = (!('ontouchstart' in document.documentElement))? 'mouseout':'touchend';
    
    为确保兼容性:

     var Event_mouseup = function (e)(
           Code mouseup.......
     };
    
    if(object.addEventListener){
    object.addEventListener(mouseup,Event_mouseup,{passive:true});  //passive true not return event
    }else if(object.attachEvent){
    object.attachEvent(mouseup,Event_mouseup);
    }else{
    object['on'+mouseup]=Event_mouseup;
    };
    
    窗口对象的工作原理完全相同

    事件加载在HTML页面中非常特殊

    处理此事件的对象是加载IMG、视频、音频等数据的对象

    通常,当一个对象有一个加载事件时,它也有一个错误加载事件

    要理解DOM和浏览器,必须将其与C++窗口进行比较

    窗口
    -----------------------事件负载
    -----对象1 HTML DOM
    -----------event1对象
    -----------event2对象
    -----对象2 HTML DOM
    -----------event1对象
    -----------event2对象
    ----------------------事件卸载
    窗口