--- title: DocumentOrShadowRoot.caretPositionFromPoint() slug: Web/API/Document/caretPositionFromPoint tags: - API - Document - DocumentOrShadowRoot - Method - Reference - ShadowRoot - caretPositionFromPoint() translation_of: Web/API/DocumentOrShadowRoot/caretPositionFromPoint original_slug: Web/API/DocumentOrShadowRoot/caretPositionFromPoint ---
{{APIRef("CSSOM View")}}{{SeeCompatTable}}
{{domxref("DocumentOrShadowRoot")}} インターフェイスの caretPositionFromPoint()
プロパティは、 DOM ノードを含む {{domxref('CaretPosition')}} オブジェクトを、そのノード内のキャレットとキャレットの文字オフセットと共に返します。
var caretPosition = document.caretPositionFromPoint(float x, float y);
x
y
{{domxref('CaretPosition')}} オブジェクト。
この例では、クリックした場所に改行を挿入します。そのコードはデモの下にあります。
{{EmbedLiveSample('Example', '100%', '300px')}}
<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); } };
仕様 | ステータス | 備考 |
---|---|---|
{{SpecName('CSSOM View','#dom-document-caretpositionfrompoint','caretPositionFromPoint()')}} | {{Spec2('CSSOM View')}} | Initial definition. |
{{Compat("api.DocumentOrShadowRoot.caretPositionFromPoint")}}