【问题标题】:How to get Range object in IE 11如何在 IE 11 中获取 Range 对象
【发布时间】:2015-12-16 00:29:48
【问题描述】:

我想要

的等效代码
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 方法不可用。

提前致谢。

【问题讨论】:

    标签: javascript html dom internet-explorer-11


    【解决方案1】:

    您必须使用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

    【讨论】:

      【解决方案2】:

      你必须使用window.getSelection方法。

      来源:http://msdn.microsoft.com/en-us/library/ie/ff975169(v=vs.85).aspx https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection

      var range;    
      if (document.selection){
          // IE before version 9
          range = document.selection.createRange();
          ...
      } else {
          // IE after version 9
          range = window.getSelection();
          ...
      }
      

      【讨论】:

        【解决方案3】:

        您可以使用函数window.getSelection()

        一个很好的参考可以找到here

        【讨论】:

          猜你喜欢
          • 2017-06-24
          • 2015-02-08
          • 2011-01-14
          • 1970-01-01
          • 2017-01-06
          • 2017-10-22
          • 2015-12-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多