* splitText method (DOM Text 界面) [1] メソッド [CODE(DOM)[[VAR(DOMi)[[[Text]]]].[CODE(DOMm)[splitText]] ([VAR(DOMp)[offset]])]] は、[[文節]] [VAR(DOMi)[Text]] を位置 [CODE(DOMp)[offset]] で2分します。 引数 [CODE(DOMp)[offset]] は文字列先頭からの位置で、 [CODE(DOM)[0]] から始まります。[[サロゲート・ペア]]は1組で 2つ分と数えるので注意が必要です。 分割の結果前半の部分が当該[[節]]として残り、 後半の部分は新しいすぐ下の弟節として追加されます。 [2] 結果: - (正常時) 新しい (弟の方の) 文節 - [[例外]] [CODE(DOM)[[[DOMException]]]]: :[CODE(DOM)[INDEX_SIZE_ERR]]:[CODE(DOMp)[offset]] が負の値か、又はデータ中の16ビット単位の数よりも大きい値です。 :[CODE(DOM)[NO_MODIFICATION_ALLOWED_ERR]]: 対象節は[[読取専用]]です。 [4] この method は DOM 水準 1 です。 [3] [CODE(DOMp)[offset]] が [CODE(DOM)[0]] とか[VAR[データの16ビット単位での長さ − 1]] だった場合には一方の節は長さ 0 の文字列になりますが、 特に問題があるとはかかれていないから良いのでしょうか。 [5] 2つの[[節点]]が[[木]]の中で[[兄弟]]でありつつ〜とありますが、 [CODE(DOMa)@en[[[parentNode]]]] が [CODE(IDL)@en[[[null]]]] の場合には[[兄弟]]になり得ないはずです。 ([[名無しさん]]) [6] 2つの[[節点]]が[[木]]の中で[[兄弟]]でありつつ〜とありますが、 [CODE(DOMa)@en[[[parentNode]]]] が [CODE(IDL)@en[[[null]]]] の場合には[[兄弟]]になり得ないはずです。 ([[名無しさん]]) [7] [CODE(DOMp)@en[[[offset]]]] が [CODE(DOMa)@en[[[data]]]] の[[長さ]]と同じなら新しい[[節点]]は[[空文字列]]になるとあります。 [CODE(DOMp)@en[[[offset]]]] が[[零]]なら元の[[節点]]が[[空文字列]]になるということでよいのでしょう。 ([[名無しさん]]) [8] [[サロゲート・ペア]]を分断しようとしたらどうなるのでしょうか。 ([[名無しさん]]) [9] [CODE(DOMa)@en[[[isElementContentWhitspace]]]] はどうなるのでしょうか。 ([[名無しさん]]) [10] [[引数]]は [CODE(IDL)@en[[[unsigned]] [[long]]]] で[[負]]にはならないにもかかわらず、 [[負]]の場合 [CODE(DOMc)@en[[[INDEX_SIZE_ERR]]]] と説明されています。 ([[名無しさん]]) [11] [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]] は[Q[この[[節点]]が[[読取専用]]なら]]とだけ書いてありますが、 [[親]]が[[読取専用]]のときにもそうならなければならないはずです。 ([[名無しさん]]) [12] [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]] は[Q[この[[節点]]が[[読取専用]]なら]]とだけ書いてありますが、 [[親]]が[[読取専用]]のときにもそうならなければならないはずです。 ([[名無しさん]]) [[#comment]] * メモ