根据 x 和 y 坐标将插入符设置到最近的可能位置
Set caret to nearest possible position based on an x and y coordinate
如何根据 x 和 y 坐标将插入符号位置(文本光标)设置为最近的可能位置?整个 html 文档已设置 document.designMode = "on"
。
我找到了一些东西来获取当前的 X 和 Y 坐标,但是我怎样才能反转场景?
let sel = window.getSelection();
let range = sel.getRangeAt(0);
console.log(range.getClientRects());
我正在寻找必须在 Microsoft WebView2/Edge 中运行的 vanilla javascript。将文件拖动到此 html 文档时,插入符号的位置完全按照我正在寻找的方式更改(但我无法使用此拖动操作)。
我找到了解决方案:
function moveCaret(x, y) {
let sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(document.caretRangeFromPoint(x, y));
}
该函数将插入符号移动到最近的可能位置。在 Opera、Edge 或 Chrome.
等铬浏览器上测试
我在 stack overflow 上找到了一个跨浏览器的解决方案(在知道 caretRangeFromPoint
函数的名称之后)。如果您正在寻找跨浏览器解决方案,请查看此处:
如何根据 x 和 y 坐标将插入符号位置(文本光标)设置为最近的可能位置?整个 html 文档已设置 document.designMode = "on"
。
我找到了一些东西来获取当前的 X 和 Y 坐标,但是我怎样才能反转场景?
let sel = window.getSelection();
let range = sel.getRangeAt(0);
console.log(range.getClientRects());
我正在寻找必须在 Microsoft WebView2/Edge 中运行的 vanilla javascript。将文件拖动到此 html 文档时,插入符号的位置完全按照我正在寻找的方式更改(但我无法使用此拖动操作)。
我找到了解决方案:
function moveCaret(x, y) {
let sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(document.caretRangeFromPoint(x, y));
}
该函数将插入符号移动到最近的可能位置。在 Opera、Edge 或 Chrome.
等铬浏览器上测试我在 stack overflow 上找到了一个跨浏览器的解决方案(在知道 caretRangeFromPoint
函数的名称之后)。如果您正在寻找跨浏览器解决方案,请查看此处: