読者です 読者をやめる 読者になる 読者になる

Kanasan.JS JavaScript第5版読書会#6 に参加した

今日、Kanasan.jsJavaScript第5版読書会#6に参加した。その復習と感想。

読んだ所

  • 14章 ブラウザウィンドウの制御

P281 ~ P310

  • 15章 ドキュメントの制御

P311 ~ P360

  • 16章 CSSとダイナミックHTML

P361 ~ P377
16.2.3 要素の位置とサイズのチェック の直前まで

内容

14章はブラウザウィンドウの制御で、新しいウィンドウをポップアップで表示したり、ステータスバーに何か文字を表示したりするテクニックについてだ。つまり、今時あんまり使わない。ただし、「14.3.1 ウィンドウのサイズと位置情報」は今表示している座標が取得できて、ブラウザウィンドウの真ん中に何かを表示させる、みたいなときに役に立つ。

15章はDOM操作だ。色んなテクニックが書かれているが、要するにDOM Nodeの取得は有名なgetElementByIdなんかを使えば良い。その他、IE4 DOMなんていうのも紹介されているが、無視してよい。

16章はCSSについてだ。今回読んだ所はJavaScriptはあんまり関係なくて、CSS自体の解説、リファレンスになっていた。

出てきた質問、発言

出てきた発言で印象に残ったものは以下。

Q: クラス名からHTMLエレメントを取得するサンプルコードがあるが、標準でこういう関数はないのか?

A: 最近のブラウザにはgetElementsByClassNameがある。IEにはない。Firefoxでは3.0からサポートした。HTML 5では仕様として規定される(予定)。

id:amachangによると、prototype.js の document.getElementsByClassName は重いらしい。「いつか、ネイティブなメソッドとして getElementsByClassName が実装されることを願います。」とあるが、このエントリが書かれたのが2006年2月8日。2008年11月現在、近代的なブラウザでは実装されています。IEでは実装されていません。

Q: getElementsByClassNameが実装されているブラウザでの質問。getElementsByClassName("a") という呼び出し方でa, bという2つのクラスを持つ要素を取得できるのか?

A: 取得できる。a というクラスを持っていれば、他にクラスを持っていたとしても取得できる。

Q: P345のサンプルコード。「この例外は発生するはずがないが、Firefoxの場合は発生する。」ってどういう意味?

A: Firefoxの場合、for/in文で、あるobjectのプロパティ名を取得した後、object[プロパティ名]と参照した時に例外が発生することがある。

Q: 「控えめなJavaScriptで影付きテキストを生成する」って、何がどう控えめなの? めっちゃ目立つんですけど。

A: この本ではJavaScriptを使わなくてもちゃんと読めるような使い方を「控えめ」と表現している。この例でもJavaScriptを無効化していたら単なる(影なしの)文字として普通に読めるから「控えめ」だ。

だけど、文字をちょっとずつずらして影っぽく見せるやり方はそのテキストをコピペするときなんかに困ったことになるので、あんまり感心しない。

全体的な感想

僕はこの勉強会に参加するのは初めてだったけど、みんないいひとで楽しかった。それに、ちょっとした疑問に対してその答えがすごい。「なんでそこまで知ってるの?」と思うこともあった。人数がいるとその分知識が増幅されると思う。なので、わざわざ集まったかいがあった。

最後に

主催者のkanasanが関東に引っ越すことになって、今回参加されるのが最後になるそうだ。とっても残念だ。けど、kanasanの「関西を盛り上げたい」という思いはみんなに伝わったと思う。kanasan、今までお疲れさまでした。そして、関東でも活躍されることを期待しています。

今後Kanasan.jsの名前も変わるかもしれないが、次回のスーパーKanasan.js(仮称)にも参加したい。