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);
}

この関数の目的は、イベントを再現することです。ループを回避するために (傍受は他のブラウザーでも有効です) dispatchedEvent、プロパティに「from」を追加します。

これにもかかわらず、e.formは常に ですがundefined、どこが間違っていますか?

4

1 に答える 1

1

jQueryを使っているようですね。

jQuery イベントにはfromプロパティがなく、次のイベント プロパティのみを正規化します。

  • 目標
  • 関連ターゲット
  • ページX
  • ページY
  • どれの
  • メタキー

イベントでカスタム プロパティを渡したい場合は、jQuery 自体でカスタム イベントをトリガーする必要があります。http://api.jquery.com/category/events/event-object/または元のイベントにアクセスしますevent.originalEvent

于 2013-01-10T15:18:21.410 に答える