Jintrick.netagenda2001年09月アーカイブ → 2001年09月04日

アンカー

文脈で登場するアンカー(<a class="within" href="#foo">bar</a>)は、私はそれほど便利だと思わない。※印で補足説明をした別の箇所へ飛ばされると、集中できないことがよくある。かといって別窓で開くと、何故かページの最上部になってしまうことがある。

次のようなモデルを考えてみた。

<p>
当サイトでは、<a class="within" href="#css">CSS(※)</a>でレイアウトを行っています。
</p>

----------------------------------------------------

<p>
<a id="css">※CSS</a>とはCascading Style Sheetsの略です。
</p>

CSS(※)という部分をクリックすると、ページ内の別の箇所に飛ばされてしまうわけだが、そうではなく、クリックした時にその場で説明がポップアップすれば、文章の流れを変えることなく、説明を参照することが出来る。

もっとも、ポップアップなどは珍しいものでもなんでもない。しかし、このHTMLに全く手を加えることなく、このようなポップアップを実現できるとしたらどうだろうか。そういうことを可能にするのが、Document Object Modelで、HTMLとJavaScriptの主従関係を完全に保存したまま、表示関係を処理することができる。

  1. href属性値の最初の文字が#(hash)である場合、#以下を引数としたJavaScript関数fを呼び出す記述に変更する。window.onloadで実行。
  2. 関数fが呼び出された場合、引数と同じidを持つ要素を参照し、その親要素(P要素)の内容(innerHTML)を変数aに格納する。
  3. 変数aの内容をinnerHTMLに持つDIV要素を生成し、イベントが発生した座標近くに出現させる。

2.が怪しい。説明がp要素ではなく、dt,dd要素でされていた場合、全く違う処理をしなければならない。だから、悪く言えばHTML文書の柔軟性を損なう恐れがあるが、しかし良く言えば文書構造に一貫性を持たせる動機となり得る。

何れにしろ、HTMLの文法を遵守していたとしても、汎用性のあるスクリプトを書くのは不可能に近いということ。一貫性のある美しいHTML文書を書くことこそ、Document Object Modelを利用するには大切なのだと思う。

人が何も意識しないで文書を作れるやうにしなければならない、と云ふ「信仰」は、好い加減、捨てるべき。コンピュータは意識を持たない。文章を書くと云ふ行爲が本質的に無意識の意識化の過程である以上、プログラムに全てを任せ切る事は出來ない。

HTML文書を作るのは人間/ウェブオーサリングの常識・非常識 より


webmaster@jintrick.net
公開: 2001年09月04日
カテゴリ: