javascript - 如何在 IE 11 中获取 Range 对象

标签 javascript html dom internet-explorer-11

我想要

的等效代码
var nbLineStart=textarea.value.substr(0, textarea.selectionStart).split("\n").length - 1;
            var nbLineEnd=textarea.value.substr(0, textarea.selectionEnd).split("\n").length - 1;
    var range = document.selection.createRange();
                try{
                    range.moveToElementText( textarea );
                }catch(e){}
                range.setEndPoint( 'EndToStart', range );
                range.moveStart('character', textarea.selectionStart - nbLineStart);
                range.moveEnd('character', textarea.selectionEnd - nbLineEnd - (textarea.selectionStart - nbLineStart)  );
                range.select();

在IE 11平台上运行成功。

如果我在 IE 11 中使用 document.getSelection() 方法,则 setEndPoint、moveStart 和 select 方法不可用。

提前致谢。

最佳答案

您必须使用window.getSelection() 方法来获取所选内容

function TestSelection() {
  if (window.getSelection) {  // all browsers, except IE before version 9
    var selectionRange = window.getSelection();                                        
    alert("The text content of the selection:\n" + selectionRange.toString());
  } else {
    if (document.selection.type === "None") {
      alert("No content is selected, or the selected content is not available!");
    } else {
      var textRange = document.selection.createRange();
      alert("The text content of the selection:\n" + textRange.text);
    }
  }
}

检查此链接以供引用:

Link

关于javascript - 如何在 IE 11 中获取 Range 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011762/

相关文章:

javascript - 期望一个 float 数组接近 Jasmine 中的另一个数组

javascript - 如何使用元素的类正确计算 html 表格列的选中复选框?

html - CSS Flexbox - 根据屏幕尺寸组织 flex 元素

javascript - css html - DIV 和 img 在 Firefox 上不显示,在 Safari 上位置错误

PHP XPath 查询

javascript - onchange 事件是否传播?

asp.net - DOM异常:INVALID_CHARACTER_ERR(5)

javascript - 通过javascript获取浏览器的尺寸

javascript - 链接的 `.then()` 能否以与 `.then()` 的顺序不同的顺序返回响应?

javascript - 如何在 JointJS 中交互式创建链接