这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
caretPositionFromPoint()
特性为
DocumentOrShadowRoot
interface returns a
CaretPosition
object, containing the DOM node, along with the caret and caret's character offset within that node.
var caretPosition = document.caretPositionFromPoint(float x, float y);
x
The horizontal coordinate of a point.
y
The vertical coordinate of a point.
A
CaretPosition
对象。
This example inserts line breaks wherever you click. The code for it is below the demo.
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
function insertBreakAtPoint(e) {
var range;
var textNode;
var offset;
if (document.caretPositionFromPoint) {
range = document.caretPositionFromPoint(e.clientX, e.clientY);
textNode = range.offsetNode;
offset = range.offset;
} else if (document.caretRangeFromPoint) {
range = document.caretRangeFromPoint(e.clientX, e.clientY);
textNode = range.startContainer;
offset = range.startOffset;
}
// only split TEXT_NODEs
if (textNode.nodeType == 3) {
var replacement = textNode.splitText(offset);
var br = document.createElement('br');
textNode.parentNode.insertBefore(br, replacement);
}
}
window.onload = function (){
var paragraphs = document.getElementsByTagName("p");
for (i=0 ; i < paragraphs.length; i++) {
paragraphs[i].addEventListener("click", insertBreakAtPoint, false);
}
};
| 规范 | 状态 | 注释 |
|---|---|---|
|
CSSOM (CSS 对象模型) 视图模块
The definition of 'caretPositionFromPoint()' in that specification. |
工作草案 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
caretPositionFromPoint
|
Chrome No | Edge No | Firefox 20 | IE No | Opera No | Safari Yes | WebView Android No | Chrome Android No | Firefox Android 20 | Opera Android No | Safari iOS Yes | Samsung Internet Android No |
完整支持
不支持
实验。期望将来行为有所改变。
DocumentOrShadowRoot
caretPositionFromPoint()
elementFromPoint()
elementsFromPoint()
getSelection()
msElementsFromRect()
nodeFromPoint()
nodesFromPoint()