Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何在div中选择一个文本,它的内容有一个滚动条_Javascript_Angular_Textselection - Fatal编程技术网

Javascript 我如何在div中选择一个文本,它的内容有一个滚动条

Javascript 我如何在div中选择一个文本,它的内容有一个滚动条,javascript,angular,textselection,Javascript,Angular,Textselection,我的意图是在有滚动条的div中选择一个文本。我需要在该div中滚动并强制选择一个文本 我正在使用下面给定的代码 createSelectionFromPoint(startX, startY, endX, endY) { var doc = <any> document; var documentBody = <any>doc.body; var start, end, range = null; i

我的意图是在有滚动条的div中选择一个文本。我需要在该div中滚动并强制选择一个文本

我正在使用下面给定的代码


  createSelectionFromPoint(startX, startY, endX, endY) {

        var doc = <any> document;
        var documentBody = <any>doc.body;
        var start, end, range = null;
        if (typeof doc.caretPositionFromPoint != "undefined") {
          start = doc.caretPositionFromPoint(startX, startY);
          end = doc.caretPositionFromPoint(endX, endY);
          range = doc.createRange();
          range.setStart(start.offsetNode, start.offset);
          range.setEnd(end.offsetNode, end.offset);  

        } else if (typeof doc.caretRangeFromPoint != "undefined") {

          start = doc.caretRangeFromPoint(startX, startY);
          end = doc.caretRangeFromPoint(endX,endY);
          range = doc.createRange();
          range.setStart(start.startContainer, start.startOffset);
          range.setEnd(end.startContainer, end.startOffset);    

        }
        if (range !== null && typeof window.getSelection != "undefined") {
          var sel = window.getSelection();
          sel.removeAllRanges();
          sel.addRange(range);   

        } else if (typeof documentBody.createTextRange != "undefined") {
          range = documentBody.createTextRange();
          range.moveToPoint(startX, startY);
          var endRange = range.duplicate();
          endRange.moveToPoint(endX, endY);
          range.setEndPoint("EndToEnd", endRange);    
          range.select();
        }




  }


createSelectionFromPoint(起点、起点、终点、终点){
var doc=单据;
var documentBody=doc.body;
变量开始、结束、范围=空;
if(doc.caretPositionFromPoint的类型!=“未定义”){
开始=文档caretPositionFromPoint(开始、开始);
end=文档插入位置FROMPOINT(endX,endY);
range=doc.createRange();
range.setStart(start.offsetNode,start.offset);
range.setEnd(end.offsetNode,end.offset);
}else if(doc.caretRangeFromPoint的类型!=“未定义”){
开始=文档caretRangeFromPoint(开始发送,开始发送);
end=doc.caretRangeFromPoint(endX,endY);
range=doc.createRange();
range.setStart(start.startContainer,start.startOffset);
range.setEnd(end.startContainer,end.startOffset);
}
if(范围!==null&&typeof window.getSelection!=“未定义”){
var sel=window.getSelection();
选择removeAllRanges();
选择添加范围(范围);
}else if(documentBody.createTextRange的类型!=“未定义”){
range=documentBody.createTextRange();
范围。移动点(startX、startY);
var endRange=range.duplicate();
endRange.moveToPoint(endX,endY);
range.setEndPoint(“EndToEnd”,endRange);
range.select();
}
}
我收到的错误消息是

错误类型错误:无法读取错误行前的null属性“startContainer”

console.log(开始)
。(在
end=doc.caretRangeFromPoint(endX,endY);
之后)我安慰了它。结果为“空”,请在错误行前的相同位置尝试
console.log(startX+'''+startY)
。(在
end=doc.caretRangeFromPoint(endX,endY);
之后)我安慰了它。结果是“null”try
console.log(startX+''+startY)
在相同的位置