Javascript 我如何在div中选择一个文本,它的内容有一个滚动条
我的意图是在有滚动条的div中选择一个文本。我需要在该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
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”tryconsole.log(startX+''+startY)
在相同的位置