2012-05-09 38 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

確定。在Firefox中,可以使用event.rangeOffset。