JavaScript事件处理程序

时间:2009-07-31 20:35:54

标签: javascript javascript-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);
dialogWindow.onunload += myEventHandler;

function myEventHandler(e)
{
  // Do stuff
}

我猜我的语法不正确。但是,我似乎无法找到任何有关此问题的文档。有人可以帮助我吗?

谢谢,

2 个答案:

答案 0 :(得分:6)

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

dialogWindow.unload = myEventHandler;

或者保留现有的处理程序:

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

当然还有use JQuery

答案 1 :(得分:1)

JavaScript仅管理对象。包含HTML5的HTML DOM元素是对象,我们可以将它们分类如下:

  1. 具有所有事件的Window对象
  2. 与Window一样完整的IFRAME对象(这就是Youtube使用它的原因)
  3. 仅具有管理事件,单击,mouseup,mouseDown ...以及它们自己的事件(音频,视频,DIV BLOCK)等的DOM对象。

构建JAVASCRIPT对象有点像Visual Basic或C ++。

事件易于管理,我们可以混合使用智能手机和计算机的事件。为了确保支持旧的浏览器SAFARI,IE,只需避免使用某些关键字(如(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;
};

Window对象的工作原理完全相同。

事件加载在HTML页面中确实很特殊。

处理此事件的对象是加载IMG,VIDEO,AUDIO等数据的对象。

通常,当对象发生加载事件时,它也会发生错误加载事件。

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

Window ----------------------- event Load              -------- Object 1 HTML DOM              --------- event1 Object              --------- event2 Object              -------- Object 2 HTML DOM              --------- event1 Object              --------- event2 Object ---------------------- event unload Window