背景: 我目前正在编写一个包含/修改特定页面的html的greasemonkey脚本。该页面设置有3个嵌套的div。在这3个div中,我只能向最外层的div添加一个事件监听器(这是由于其他事件和已添加到元素中的事件)。使用最内部的div,通过AJAX / COMET添加链接。与内部div一样,由于页面的当前事件处理,我无法向这些链接添加事件处理程序。
我需要的内容:当点击最内层div中的链接时,该事件将冒泡到最外层的div。从最外面的div,有一种方法1:告诉它是否是在最内层div中点击的链接,如果是,2:如何获得该链接的href
请不要使用jQuery解决方案。这似乎有点过分感觉这是唯一嵌入页面的javascript
答案 0 :(得分:2)
我只会使用一个简单的跨浏览器事件监听器和event.target
(或IE中的event.srcElement
),如下所示:
var addEvent = function (el, ev, fn) {
if (el.addEventListener) {
el.addEventListener(ev, fn, false);
} else if (el.attachEvent) {
el.attachEvent('on' + ev, fn);
} else {
el['on' + ev] = fn;
}
};
var outer = document.getElementById('outer');
addEvent(outer, 'click', function(ev){
ev = ev || window.event;
var target = ev.target || ev.srcElement;
alert(target.href);
});