JavaScript事件处理程序
我试图弄清楚如何以编程方式将事件处理程序添加到JavaScript对象。更具体地说,我尝试将事件处理程序添加到窗口对象的onunload事件中。我正在这样尝试,但没有任何运气: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);
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元素都是对象,我们可以将它们分类如下:
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对象
----------------------事件卸载
窗口