我使用以下代码拦截iframe中的所有点击事件:
$(doc.body).on("click", function(e) {
if (e.from === undefined) {
e.preventDefault();
e.stopPropagation();
interceptEvent(e);
}
}
interceptEvent(e)发送XML消息(带有原始e.target的路径) 该消息(在另一个浏览器上)由函数
捕获if (document.createEvent) { //Netscape
var evt = document.createEvent("HTMLEvents");
evt.initEvent(value, false, true);
evt.from = 'trigger'; //trigger for recognize a XML programmatically event
return !$('.browser').contents().find(path)[0].dispatchEvent(evt);
}
此功能的目的是复制事件。 为了避免循环(拦截在其他浏览器上也是活动的)我向dispatchedEvent添加了一个属性“from”。
尽管如此e.form
总是undefined
,我错在哪里?
答案 0 :(得分:1)
似乎你使用jQuery,对吧?
jQuery事件没有来自的属性,并且只规范化以下事件属性:
如果要使用事件传递自定义属性,则需要使用jQuery本身触发自定义事件。 http://api.jquery.com/category/events/event-object/或使用event.originalEvent