{HTML の要素}{Aejs}{insertAdjacentHTML()}{希哲13年8月12日の開発}{希哲13年8月12日}{記法}(6)

{要素位置記法 K#F85E/5B28-E380}

特定 HTML 要素の直前beforebegin,要素内の先頭afterbegin,要素内の末尾beforeend,要素の直後afterend,という4つの位置簡略表現出来る記法希哲13年(2019年)8月12日Aejs のために宇田川浩行が考案。

HTML タグを模しつつ方向を表す記号を兼ねた <, >, </, /> を使う。

<!-- (1) beforebegin -->
<div>
<!-- (2) afterbegin -->
各要素位置
<!-- (3) beforeend -->
</div>
<!-- (4) afterend -->

要素 divHTML 素出ソース html を挿入したい時,標準的な JavaScript では以下のように記述する。

div.insertAdjacentHTML( 'beforebegin', html );  // (1) に挿入
div.insertAdjacentHTML( 'afterbegin', html );   // (2) に挿入
div.insertAdjacentHTML( 'beforeend', html );    // (3) に挿入
div.insertAdjacentHTML( 'afterend', html );     // (4) に挿入

Aejs では以下のように記述する。

div.ins( '<', html );   // (1) に挿入
div.ins( '>', html );   // (2) に挿入
div.ins( '</', html );  // (3) に挿入
div.ins( '/>', html );  // (4) に挿入
{進捗記録}{進捗}{希哲13年12月25日}{希哲13年12月25日の進捗時限}{希哲13年12月25日の進捗}{デライト最終調整}{@elm.bld..apd_src()}{夜明け前}{事象委譲}{insertAdjacentHTML()}(14)

{希哲13年12月25日29歩 K#F85E/5B28-F48B}

デライト最終調整

21時頃,身体が痺れたように動かなくなり,久しぶりに気を失うように眠ってしまった。25時30分頃目が覚めた。

全力を出して出来なかったものは仕方ないので,この時期なら夜明け前と言える30時までを目標として作業を再開する。

再描出時,@elm.bld..apd_src() で追加した内容の事象委譲が上手く出来ないという現象に悩まされる。以前似たようなことがあり,その時は insertAdjacentHTML() を使うことで解決した記憶があるが,今回は再現する場合とそうでない場合がありよく分からない。

途中で終了。

{進捗記録}{希哲13年9月30日の開発}{希哲13年9月30日の進捗時限}{希哲13年9月30日の進捗}{希哲13年9月30日}{@elm.bld..set_src()}{@elm.bld..apd_src()}{不具合修正}{事象聴取子}{事象委譲}(16)

{希哲13年9月30日4歩 K#F85E/5B28-7F47}

全知検索不具合修正続き。

再描した際,@elm.bld..set_src()innerHTML)で描出を更新すると IKON 展開などが正常に動作しないという不具合があったが,@elm.bld..apd_src()insertAdjacentHTML())にすることで解決した。

innerHTML で事象聴取子が破棄されるのは知っていたが,事象委譲を使っていてもこういうことがあるのは意外だった。どこかで取得している要素が同期されていない可能性がある。理解しきれていないが,これに関しては一旦解決。

まだいくつか不具合を残して終了。

{要素位置記法}{insertAdjacentHTML()}{afterend}{beforeend}{afterbegin}{beforebegin}{希哲13年8月12日のツイスト}{希哲13年8月12日}{JavaScript}{ツイスト}(10)
{insertAdjacentHTML()}

{}