主な対象は Gecko(Netscape6などで使われているレンダリングエンジン)及び Internet Explorer 4以降です。 Opera は、頑張ってるとは思いますが、まだちょっと、JavaScriptに関しては未対応な部分が多いと言わざるを得ません。 Macを持ってないのでiCabの確認ができていません。
コンセプトは『ブラウザ依存処理を関数内に埋め込み』。
後々楽するJavaScript記述法。 (あくまで独学の経験則です)
こうすることで、バージョン問題から解放&新たなブラウザへの対応が楽。
ただし、この方法には決定的な短所があります。
同じプロパティでもブラウザによって示すモノが違う場合に破綻します。
そんなプロパティあるの? と思うかもしれませんが、あります。
(たとえばdocument.body.offsetWidth。 IEではクライアントエリアの幅、Geckoでは見えていない部分を含めての幅になります。)
そういった場合にはその都度場合分けをしなければいけませんが、 まぁそんな困ったプロパティは滅多にないのでたいした問題にはならないでしょう。
border問題等、関数内で場合分けが必要なモノも、初期化部分で機能ごとにフラグを用意しておき、関数内では navigatorオブジェクトを一切使用しないようにすると、新たなブラウザ&バージョンがでても、 初期化部分でのフラグ操作を追加するだけで解決します。
htmlの文字コードが何であっても動作するためには必須です。 どうしても日本語が使いたければ、String.fromCharCode()を使用しましょう。
まぁ人間語で説明しても分かり辛いんですが、 common.js を見ていただければ私がどんなポリシーなのかは一目瞭然かと。
よく使うと思われる関数を寄せ集めました。
リファレンスはこちら。
sprintf()の解説が間違っていたのを修正しました。(02/01/30)
htmlドキュメントのヘッダー内で
<script type="text/javascript" src="comon.js"></script>
とするの推奨。複数のhtmlで共有するのに便利だし、
外部JavaScriptを使えない古いブラウザではそもそもこの関数群が使えないんで。
昔作ったネタもの。 動機はJavaScriptでどこまで出来るかって言うこと。 本来は戦闘のみだが完璧なDQ2を作ろうとした。 が、
等の理由でお蔵入りしていたのだがまぁ眠らしとくのもなんなんで試しに公開。
Win98SE + IE5.01ではOSが落ちるらしいです。たぶんIEのバグ。 その証拠に5.5SP2にしたら落ちなくなります。
動作確認は以下の通り。でもあんま当てにしないで。
Win2k | IE 5.5 SP2 |
IE 6.0 | |
Mozilla 1.0 | |
Netscape 6.2.2 | |
Netscape 7.0 preview release | |
Linux | Mozilla 1.0 |
ではどうぞ。