ないブログに表示されています。新しい記事を書く事で広告が消えます。[]階層型メニューであるビヘビア機能が使いたい左側のメニューで例えばバックナンバー。これを必要な時は、見えるようにして、必要でなければ隠しておきたい。Windowsのエクスプローラなどのファイル一覧で、フォルダをクリックすると、その下にぶら下がっているフォルダが表示される機能。これをこのBLOCKBLOGでも実現してみたい。やって?[0回]普通、このような機能は、はぎさんとこにあるフォルダ型階層メニューように、ここでいう「バックナンバー」などのメニュー上をマウスでクリックすると、それに対応した処理を行うJavaScriptの関数を、このメニューのHTML文のDIVタグ中に例えば、onClick="xxxxxx()"というような属性で、あらかじめ記述しておく。上記のようなことは出来ない。DOMを使えば、これらの属性が、HTML文を表示した後でも追加できてしまう。これがDOMの画期的なところです。自分も今まで、このような途中で属性を追加するということは、やったことがないので、ここで勉強する意味で、その過程を残してみようかな。いうことで書いておきます。ここでDOMは、ブラウザだと、IE5以上、Mozilla、NN6以上でできるようです。SP1、Mozilla1.6とOpera7.23しかないので、この環境のみのことで書きます。それ以外のバージョンや、他のブラウザはもちろん無視。SP1しかないので、これ以外のOSは使ったことがないので無視。マシンも、PCしか持ってないので、Macとかは、もちろん無視。●onclickがないDIVにonclickを追加し、実行可能か?document.getElementById("box").onclick="関数名()"IE:関数は属性に追加されたが、実際の配置では実行できない。Mozi:まず、当該DIV要素にonclickが存在しないため、そこに追加できないでエラーになる。oper:エラーにならないが、Moziと同じ。これは、DOM1の概念でonclickを処理したので、このようなことが起こったようで、そもそもDOM1では、イベントは対応していないようだ。●DOM2からイベントが処理されるようになったようだ。処理したい要素にイベント関数を登録するというものです。IE6では、DOM2は対応していないので、IE5から独自のプロパティがあるようです。false);}ということで、基本中の基本は、これでOK。●次に、表示を隠したり、表示したりするのは、どうすればいいのか?これは、DOM1からあるdisplay属性で制御すればよい。表示されていれば隠し、隠されていれば表示するようにする。DTタグ内の文字も、表示用と隠す用にそれぞれ、書き換えてやればよい。・nodeNameで検索するタグ名称は、大文字でないといけない。・イベントハンドラでイベントが発生した要素を参照時、DOMは、thisでOKだが、IEは、window.event.srcElementじゃないと駄目。・childNodesのノードの指定は、IEは、childNodes(i)で、DOMは、childNodes[i]なのね。要するに、括弧とカギ括弧の違い。いうことで、今回はまあスムーズにできました。【BLOCKBLOGで対応すれば簡単】この機能も段々使っていると、欲しいという声が上がってきそうですね。その時もデザイン変更と同じで、BLOCKBLOGさんで、対応してくれれば、こんなにややこしいことしなくてもHTMLを吐き出す時にちょっと書き換えるだけで簡単に出来ちゃうので、きっと対応してくれるでしょう。こちらは設定画面が大変かもね、なので少しは大変かも?ただもう既にBLOCKBLOGの設定画面で使ってるみたいだけど。BLOCKBLOGのブロックという考えは、とてもいいのだけど、それを設定するのに、いろいろな設定画面があるんだけど、それがいろいろ複雑で、この画面で作成して、こっちの画面で登録して、という複数の操作を組み合わせないと出来ないのでこれが自分も初めは何のことかよく分からなかった。BLOCKBLOGの目的はHTMLなんて全く知らない人でも簡単に使えることだと思うけど、どうもこの設定画面は分かりずらいかなと感じます。自分は見た目の直感性を重視した方がいいと思う。ブログを使う人は、自分もそうだけど、まず何が出来るのか?どうやって作るのか?どうやって操作するの?ということが見た目で簡単に分かる必要があると思うんですよね。それが、どこのブログサービスも、この辺がいろんなところを見てみないとイマイチ理解できない。いう意味でまずは、あなたが作ると、こんな感じの画面になります。その画面のこの部分は、こういう機能です。その部分をクリックすれば、それの設定操作が行えます。いうことを実際の画面で見せて操作すればいいじゃないのかな。画面をもろに表示し、例えばカテゴリ表示の部分をクリックするとその説明と、カテゴリ編集とその設定が一度に出来ちゃう。入力は、本文内をクリックすると、投稿画面が出てくるとか。JavaScriptじゃなく、HTML文でのみで作るんですけど。そんなのがあったらいいななんて思った次第。・DOMは、ブラウザだと、IE5以上、Mozilla、NN6以上でできるようです。SP1、Mozilla1.6とOpera7.23しかないので、これで確認し、この環境のみのことで書いてある。それ以外のバージョンや、他のブラウザはもちろん無視(動くかどうか不明)。SP1しかないので、これ以外のOSは使ったことがないため無視。・マシンも、PCしか持ってないので、Macとかは、もちろん無視。・BLOCKBLOGの文書構造に合わせて作成してあるので、この文書構造以外は当然動かないです。1.2.2(v125.7)で動かしたら、動いた。最新のトラックバックは、1件に対してDDが3個もあるので長くなる。いうことで、複数カテゴリを対象にする必要があるが、いっそのこと、カテゴリ名の先頭に半角で[+]または[-]を予め指定しておけばそれに対応して、階層メニュー化させれば便利ですね。いうことで、この仕様に変えた。現在は、テーブルで対象カテゴリ名を設定しているので、そこを、対象BLOCK領域id名(menu等)をテーブルで持ち、この領域が存在するものについて、その子ノードでnodeNameがDLで、その子ノードのDTの中身の先頭が[+]か[-]のDDに対して[-]なら、そのままで、イベントを登録する。[+]なら、DDを隠し、イベントを登録する。注)DTのカテゴリ名の先頭に半角スペースがあってもこれはレイアウト時に無視されるようですね。^^)【でも直ぐ使いたいという気さくな方】ここ見てね。内容理解できて、何が必要で、どうすればいいかを判断できる人ね。サポート、問合せはごめんね。Mayumi][-]最新記事TIN無しでもアメリカで源泉徴収された税金を全額取り戻したい。(03/11)今日はバレンタインディーだが、バンカラに行ってきた。(02/15)いやーー素晴らしいカラオケ居酒屋だった。(06/30)みなさん腹式呼吸が大事と言うが。(06/25)カラオケ喫茶で、カラオケ大会に出ている方がいる。誕生(10/28)はじめたきっかけ(11/11)公開したけどアクセスは50件(12/13)JavaScriptとの出会い(01/10)HPの内容を変える画期的な出会い(01/10)アクセス。