<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>splitText method (DOM Text 界面)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> メソッド 
<code class="DOM"><var class="DOMi"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Text</anchor></var>.<code class="DOMm">splitText</code> (<var class="DOMp">offset</var>)</code>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文節</anchor> <var class="DOMi">Text</var> を位置
<code class="DOMp">offset</code> で2分します。</p><p>引数 <code class="DOMp">offset</code> は文字列先頭からの位置で、
<code class="DOM">0</code> から始まります。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート・ペア</anchor>は1組で
2つ分と数えるので注意が必要です。</p><p>分割の結果前半の部分が当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節</anchor>として残り、
後半の部分は新しいすぐ下の弟節として追加されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 結果:<ul><li>(正常時) 新しい (弟の方の) 文節</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor> <code class="DOM"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMException</anchor></code>:<dl><dt><code class="DOM">INDEX_SIZE_ERR</code></dt><dd><code class="DOMp">offset</code>
が負の値か、又はデータ中の16ビット単位の数よりも大きい値です。</dd><dt><code class="DOM">NO_MODIFICATION_ALLOWED_ERR</code></dt><dd>
対象節は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読取専用</anchor>です。</dd></dl></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> この method は DOM 水準 1 です。
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/DOM-Level-1/level-one-core.html#method-splitText">http://www.w3.org/TR/DOM-Level-1/level-one-core.html#method-splitText</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="DOMp">offset</code> が <code class="DOM">0</code>
とか<var>データの16ビット単位での長さ − 1</var>
だった場合には一方の節は長さ 0 の文字列になりますが、
特に問題があるとはかかれていないから良いのでしょうか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end>
2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>の中で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">兄弟</anchor>でありつつ〜とありますが、
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code> が <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>
の場合には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">兄弟</anchor>になり得ないはずです。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end>
2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>の中で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">兄弟</anchor>でありつつ〜とありますが、
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code> が <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>
の場合には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">兄弟</anchor>になり得ないはずです。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end>
<code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">offset</anchor></code> が <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">data</anchor></code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">長さ</anchor>と同じなら新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>になるとあります。
<code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">offset</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">零</anchor>なら元の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>になるということでよいのでしょう。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート・ペア</anchor>を分断しようとしたらどうなるのでしょうか。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end>
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">isElementContentWhitespace</anchor></code>
はどうなるのでしょうか。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>は <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unsigned</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">long</anchor></code>
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負</anchor>にはならないにもかかわらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負</anchor>の場合 <code class="DOMc" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">INDEX_SIZE_ERR</anchor></code>
と説明されています。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end>
<code class="DOMc" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NO_MODIFICATION_ALLOWED_ERR</anchor></code>
は<q>この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読取専用</anchor>なら</q>とだけ書いてありますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読取専用</anchor>のときにもそうならなければならないはずです。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end>
<code class="DOMc" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NO_MODIFICATION_ALLOWED_ERR</anchor></code>
は<q>この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読取専用</anchor>なら</q>とだけ書いてありますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読取専用</anchor>のときにもそうならなければならないはずです。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en">Remove no-op range mutations from split a Text node</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-03-07 19:44:49 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/334428fce03df0f99fdb2468a4f87508a470bee3">https://github.com/whatwg/dom/commit/334428fce03df0f99fdb2468a4f87508a470bee3</anchor-external></p></section></body></html>