1

テキストボックスがあります。最初のテキストを書くと、Javaスクリプト関数が起動して、それが数値かどうかを確認します。

IE の場合、次のコードは -1 値を返しますが、他のブラウザーでは値を警告しません。私を助けてください

var selected = document.selection.createRange();
var decInSel = selected.text.indexOf('.');
hasNegInSel  = selected.text.indexOf('-') != -1;
alert(decInSel);
4

3 に答える 3

1

document.selection.createRange()is IE < 9 only ...クロスブラウザサポートのための次の機能

function getSelectedText() {
  if (window.getSelection) {  // all browsers, except IE before version 9
    var selectionRange = window.getSelection ();                                        
    return selectionRange.toString();
  } else {
    if (document.selection.type == 'None') {
        return "";
    } else {
        var textRange = document.selection.createRange();
        return textRange.text;
    }
  }
}

ここを参照

したがって、完全なコードは次のようになります。

var selected = getSelectedText()
var decInSel = selected.indexOf('.');
hasNegInSel  = selected.indexOf('-') != -1;
alert(decInSel);
于 2012-05-21T10:50:28.750 に答える
0

使用する

window.getSelection()

クロムはdocument.selectionをサポートしていますか?

于 2012-05-21T10:50:37.040 に答える
0

他のブラウザは、テキスト ボックスのプロパティを使用selectionStartします。selectionEnd以下を使用して、これらのブラウザーのテキスト ボックスで選択したテキストを取得できます。

var input = document.getElementById("textBox");
var selectedText = input.value.slice(input.selectionStart, input.selectionEnd);
于 2012-05-21T10:52:07.103 に答える