2012-05-09 17 views
4

FirefoxはChromeとIEから右クリックすると動作が異なります。テキストフィールドを右クリックすると、キャレットは移動しません。これはFirefoxにのみ適用される標準ですか?これは私をイライラさせる。テキストフィールドを右クリックすると、左クリックと同じようにキャレットが移動しますか?

キャレットを移動したい場合は、どこにあるのかをelement.selectionStartで知ることができ、ユーザーが選択した単語を把握します。他のすべてのブラウザはfirefox以外は正常に動作します!

標準が何であるか、これを回避する方法を知っている人はいますか? Firefoxでは、スペルチェックが機能するため、右クリックが発生したときにユーザーが選択した単語が正確にわかります。しかし、私は知らない。

私のコード: -

function onContextMenu(evt){ 
     var el = evt.getTarget(), selStart, r, ln = el.value.length; 
     // Get the location of the cursor 
     if (el.createTextRange) { // IE 
      r = document.selection.createRange().duplicate(); 
      r.moveEnd('textedit'); 
      selStart = (r.text == '') ? ln : ln - r.text.length; 
     } else { // All compliant browsers 
      selStart = el.selectionStart;   //works fine for chrome 
     } 
} 

問題について説明スクリーンショット: -

enter image description here

+0

あなたが使用しようとしているコードを投稿できますか? – kapa

+0

@bažmegakapa私は自分のコードを貼り付けました。 –

答えて

1

OK。 firefoxでは、event.rangeOffsetを使用できます。

関連する問題