1

右クリックして[IEで貼り付け]を選択した後、貼り付けイベントを処理したい。例として、私はこれを行いました:

 parent.document.frames["myframe"].document.attachEvent('onclick', function(e) {
      alert("paste");
});

そしてそれは大丈夫です。しかし、「onclick」の代わりに「onpaste」を追加すると、機能しません。また、jqueryではなくjavascriptを使用しています。

誰かがこれがどのように機能するかについての考えを持っていますか?

ありがとう

4

3 に答える 3

3

イベントはIEの要素を超えてバブルアップしない<body>ため、ドキュメントではなく要素にイベントハンドラーをアタッチする必要があります。例えば:paste<body>

parent.document.frames["myframe"].document.body.attachEvent('onpaste', function(e) {
    alert("paste");
});
于 2010-12-07T16:29:13.963 に答える
2

@novellinoは、Timsの回答にコメントを残すのに十分な担当者がいないので、ここでそれを行う必要があります。これはjQueryを使用しています(コメントを読むことはとにかくそれを使用しているように見えます):

$("#iframeid").contents().find("body").bind('paste', function() {
  // Your code here...
});

これはIEとFFの両方で機能します。

私も「$(window).bind('paste', function(e){})」を使用していましたが、ティムが言うように:

「貼り付けイベントは<body>IEの要素を超えてバブルしません」

したがって、私が添付したコードを試してみてください。

お役に立てば幸いです...アル

于 2011-02-18T14:58:07.757 に答える
0

これを行う方法については、quirskmode.orgでこのデモを確認することをお勧めします。

于 2010-12-07T15:51:48.240 に答える