2010-12-07 8 views
1

右クリックして貼り付けイベントを処理し、IEで貼り付けを選択します。例として、私はこれをしました:JavaScriptでIEのフレームにonpasteイベントを追加するには?

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

それはうまくいきます。しかし、 'onclick'の代わりに 'onpaste'を追加するとうまくいきません。また、私はjqueryではなくjavascriptを使用しています。

これがどのように機能するか考えている人はいますか?

おかげ

+0

を助け

ホープ、Operaはonpaste' 'サポートしていませんが、それは(入力の他の形態の中で、ときに、ユーザーペースト発射されます)' oninput'サポートしています。 –

答えて

3

pasteイベントがIEの<body>要素を超えてバブルアップしないため、イベントハンドラをドキュメントではなく<body>要素に接続する必要があります。例えば:私はTIMSの答えにコメントを残すenought担当者を持っていけないと見@novellino

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

私はこれを試しましたが、まだ動作していません! – novellino

+0

@novellino:文書にテキスト入力や 'contenteditable'要素がありますか?ペーストは、そのような要素内でのみ有効です。 –

+0

さて、私は、 'parent.document.frames.myframe.document.body'がヌルであるか、オブジェクトではないというエラーメッセージを受け取りました。これは何を意味するのでしょうか? – novellino

2

は、病気ここでそれをしなければなりません。これは、(your commentの読み取りがとにかくそれを使用してyoureのように見える)のjQueryを使用している:

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

これはIEとFF、ああとクロムの両方で動作します。

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

"pasteイベントがIEで<body>要素を超えたバブルアップしません"

Therfore iは添付のコードを試してみてください、それは私のために働いた。 FYI ...アル

関連する問題