From abdfd9e7f66df7403c4775dadcffdfb61ed7dc51 Mon Sep 17 00:00:00 2001 From: MDN Date: Mon, 15 Mar 2021 00:26:36 +0000 Subject: [CRON] sync translated content --- .../api/document/caretpositionfrompoint/index.html | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 files/ja/web/api/document/caretpositionfrompoint/index.html (limited to 'files/ja/web/api/document') diff --git a/files/ja/web/api/document/caretpositionfrompoint/index.html b/files/ja/web/api/document/caretpositionfrompoint/index.html new file mode 100644 index 0000000000..44deaf1be3 --- /dev/null +++ b/files/ja/web/api/document/caretpositionfrompoint/index.html @@ -0,0 +1,104 @@ +--- +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')}} オブジェクト。

+ +

+ +

この例では、クリックした場所に改行を挿入します。そのコードはデモの下にあります。

+ +

Demo

+ +

{{EmbedLiveSample('Example', '100%', '300px')}}

+ +

HTML Content

+ +
<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>
+ +

JavaScript Content

+ +
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")}}

-- cgit v1.2.3-54-g00ecf