创建范围功能在除IE以外的其他浏览器中不起作用

createRange function is not working in other browsers except IE

本文关键字:其他 浏览器 不起作用 功能 范围 IE 创建      更新时间:2023-09-26

我有一个文本框。当我写第一个文本时,java脚本函数会触发检查它是否是一个数字。

对于IE,以下代码返回-1值,但其他浏览器它不会提醒任何值。请帮助我

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

<9 ...您以下功能用于跨浏览器支持

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);

使用

window.getSelection((

chrome 是否支持文档选择?

其他浏览器使用文本框的selectionStartselectionEnd属性。您可以使用以下命令在这些浏览器的文本框中获取所选文本:

var input = document.getElementById("textBox");
var selectedText = input.value.slice(input.selectionStart, input.selectionEnd);
相关文章: