1

これは質問です:

Web ページを表示する iframe があります (必ずしも私が開発したとは限りません)。このページにはイベントが添付されている可能性があります (おそらく私にはわかりません)。

これらのイベントを動的に傍受し、後で複製するために保存するにはどうすればよいですか?

例: マウスが特定の div の上に移動すると、色が変わるとします。色を div に変更するイベントをトリガーするときに、後でそれを複製できるようにする一連の情報がすべて「登録」されていることを確認したいと思います。

アイデア?記録とその後の複製の両方

4

2 に答える 2

2

短い答えは次のとおりです

Same Origin Policyにより、別のドメインにある場合、「任意の Web ページ」のドキュメント オブジェクトに JavaScript を使用してページにアクセスすることはできません。これを実現するには、IFRAME 内の Web サイトがスクリプトと連携する必要がありますが、これは「任意の Web ページ」では発生しません。

同じドメインのIFRAME Web ページが同じドメインにある場合は、ここで
説明されているように、キャッチするすべてのイベントのリスナーを追加することで、IFRAMEs body 要素のイベントにアクセスできます。これは、本体にバブルアップするすべてのイベントで可能です。そのため、本体に向かって上向きに泡立つことが防止されているイベントがある場合、それらはこのソリューションではキャッチされません。

jQuery('#website body').on('click mouseover mouseout', function(event) {
    console.log(event.type);
});

id を持つ IFRAME があると仮定すると、website上記のようにスペースで区切ってリストすることで、必要なイベントをキャッチできます。clickこの例では、 、mousoverおよびがキャッチされmouseoutます。

多分これはあなたが望むものに近いですか?

于 2012-12-08T19:17:11.410 に答える
0

div にイベント ハンドラーを追加します。あなたの例では、使用できます

$('#div').mouseover(function(e) { ... }) 

また

('#div').on('mouseover', function(e) { ... })

「レプリケーション」の場合、過去のイベントに関する情報を何らかのオブジェクトに保存する必要があります。イベント オブジェクト自体を格納することもできます。

于 2012-12-08T18:51:43.337 に答える