2012-01-24 12 views
2

私が何をしても、キャンセルされた「貼り付け」イベント後の値をIEに選択させることはできません。IE onpaste JavaScriptイベント

IEでこのURLを見て、テキストエリアに何も貼り付けます。

http://jsfiddle.net/cfApa/1/

テキストが貼り付け後に選択する必要があります。これはChromeで動作しますが、IEでも貼り付けをキャンセルするときにselect()を機能させる方法を理解できません:

答えて

4

を使用して回避策を作ることができることは、これを試してみてください。それが動作する理由

$('textarea').on('paste', function(e) { 
    this.value = 'fooo'; 
    setTimeout(function(){ $(e.target).select(); }, 0); 

    return false; 
}); 

、私はちょうど好奇心持って、解決策を見つけ、私に聞かないでください。

+0

男、これは恐ろしいです、あなたは狡猾です。私は 'paste'イベントとIEに問題があり、setTimeout(function(){/ mycodehere /}、0)にコード全体をラップしていました。 O_O – acdcjunior

0

http://webcloud.se/log/Selecting-text-with-JavaScript/をご覧ください。 私はそれが問題だと思うし、あなたが

var range = this.createTextRange(); 
range.moveStart("character",0); 
range.moveEnd("character",$(this).html().length); 
range.select(); 
+0

選択は、もしかしたら(preventDefaultはまだ助けにはならなかったが)選択解除のブラウザでその後起こる何かがあります、ペーストイベントハンドラのコンテキストで動作しないようですあなたはそれを試してみましたか?それは動作しませんでしたか?なぜ-1? –

+0

ありがとうございますが、非常に似たようなコードを試してみましたが、成功しませんでした。 http://jsfiddle.net/xesQe/2/であなたの答えを実装しました(残念ながら、動作しません)。 IEで「ペースト」するときに何をしても、後に発生して選択をクリアする不思議なイベントがあるようです。 – user979672

+0

申し訳ありません。 oriの回避策が実現したことを嬉しく思います。今のところIEでいくつかの不具合がありました。これはコールバックの修正でタイムアウトになりました。あなたが望むなら-1を返すことができます、私はそれについて悪意を持っているつもりはありませんでした。 –

関連する問題