0

我攔截所有單擊事件在我的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); 
} 

此函數的目標是複製事件。 爲避免循環(攔截在其他瀏覽器上也處於活動狀態),我將「from」屬性添加到dispatchedEvent中。

儘管這e.form總是undefined,我錯在哪裏?

回答

1

似乎你使用jQuery,對不對?

jQuery的事件不會從有一個屬性和僅標準化以下事件屬性:

  • 目標
  • relatedTarget
  • pageX屬性
  • pageY
  • 其中
  • metaKey

如果你想傳遞自定義屬性的事件,你需要用jQuery自己觸發你的自定義事件。 http://api.jquery.com/category/events/event-object/或訪問原始事件event.originalEvent