JavaScript & DHTMLクックブック

目次

1章 文字列

  • はじめに
  • レシピ1.1 文字列を連結する
  • レシピ1.2 部分文字列にアクセスする
  • レシピ1.3 文字列の大文字小文字を変更する
  • レシピ1.4 2つの文字列が等しいかどうか調べる
  • レシピ1.5 正規表現を使わずに文字列が含まれているかどうか調べる
  • レシピ1.6 正規表現を使って文字列が含まれているかどうか調べる
  • レシピ1.7 部分文字列を検索し置換する
  • レシピ1.8 特殊文字やエスケープ文字を使う
  • レシピ1.9 クッキー文字列を読み書きする
  • レシピ1.10  Unicode値と文字を変換する
  • レシピ1.11 URL文字列をエンコード/デコードする
  • レシピ1.12 BASE64文字列をエンコード/デコードする

2章 数値と日付

  • はじめに
  • レシピ2.1 数値と文字列を変換する
  • レシピ2.2 数値かどうかを調べる
  • レシピ2.3 数値が等しいかどうかを調べる
  • レシピ2.4 浮動小数点値を四捨五入する
  • レシピ2.5 数値を表示用にフォーマットする
  • レシピ2.6 10進数と16進数缶で数値を変換する
  • レシピ2.7 疑似乱数を生成する
  • レシピ2.8 三角関数を計算する
  • レシピ2.9 Dateオブジェクトを作成する
  • レシピ2.10 過去や未来の日付を計算する
  • レシピ2.11 2つの日付の間の日数を計算する
  • レシピ2.12 日付を検証する

3章 配列とオブジェクト

  • はじめに
  • レシピ3.1 単純な配列を作成する
  • レシピ3.2 多次元配列を作成する
  • レシピ3.3 配列と文字列を変換する
  • レシピ3.4 配列の要素に対して何らかの処理を行う
  • レシピ3.5 単純な配列をソートする
  • レシピ3.6 配列を結合する
  • レシピ3.7 配列を分割する
  • レシピ3.8 カスタムオブジェクトを作成する
  • レシピ3.9 配列を高速に検索するためにハッシュテーブルをシミュレートする
  • レシピ3.10 オブジェクトのプロパティを操作する
  • レシピ3.11 オブジェクトの配列をソートする
  • レシピ3.12 オブジェクトのプロパティをカスタマイズする
  • レシピ3.13 配列やカスタムオブジェクトを文字列に変換する

4章 変数と関数とフロー制御

  • はじめに
  • レシピ4.1 JavaScriptの変数を作成する
  • レシピ4.2 名前つき関数を作成する
  • レシピ4.3 名前つき関数を入れ子にする
  • レシピ4.4 無名関数を作成する
  • レシピ4.5 関数呼び出しを遅らせる
  • レシピ4.6 条件に応じて処理を分岐する
  • レシピ4.7 スクリプトのエラーを上品に処理する
  • レシピ4.8 スクリプトのパフォーマンスを改善する

5章 ブラウザ機能の判定

  • はじめに
  • レシピ5.1 ブラウザの製品名を判定する
  • レシピ5.2 初期のブラウザのバージョンを判定する
  • レシピ5.3 Internet Explorerのバージョンを判定する
  • レシピ5.4 Mozillaのバージョンを判定する
  • レシピ5.5 Safariのバージョンを判定する
  • レシピ5.6 Operaのバージョンを判定する
  • レシピ5.7 クライアントのオペレーティングシステムを判定する
  • レシピ5.8 オブジェクトがサポートされているかどうかを判定する
  • レシピ5.9 オブジェクトがプロパティやメソッドをサポートしているかどうかを調べる
  • レシピ5.10 W3C DOM標準をサポートしているかどうかを判定する
  • レシピ5.11 ブラウザが記述されている言語を判定する
  • レシピ5.12 クッキーが利用可能かどうかを判定する
  • レシピ5.13 ブラウザに特化したリンクや、機能に特化したリンクを作成する
  • レシピ5.14 複数のブラウザバージョンで調査する

6章 ブラウザウィンドウの管理

  • はじめに
  • レシピ6.1 ブラウザウィンドウ制御に関する制限事項を受け入れる
  • レシピ6.2 メインウィンドウの大きさを設定する
  • レシピ6.3 メインウィンドウの位置を指定する
  • レシピ6.4 メインウィンドウを最大化する
  • レシピ6.5 新しいウィンドウを作成する
  • レシピ6.6 ウィンドウを前面に移動する
  • レシピ6.7 新しいウィンドウと通信する
  • レシピ6.8 メインウィンドウと通信する
  • レシピ6.9 Internet Explorerのモーダル/モードレスウィンドウを使用する
  • レシピ6.10 クロスブラウザでモーダルダイアログウィンドウをシミュレートする
  • レシピ6.11 レイヤーを使ってウィンドウをシミュレートする

7章 複数フレームの管理

  • はじめに
  • レシピ7.1 新しいフレームセット中に空のフレームを作成する
  • レシピ7.2 あるフレームから別のフレームのコンテンツを変更する
  • レシピ7.3 一度に複数のフレームのコンテンツを変更する
  • レシピ7.4 フレームセットを1つのページで置き換える
  • レシピ7.5 他サイトに「フレーム化」されるのを防ぐ
  • レシピ7.6 ページがフレームセット中に確実に読み込まれるようにする
  • レシピ7.7 フレームの大きさを読み出す
  • レシピ7.8 フレームの大きさを変更する
  • レシピ7.9 フレームセットの仕様を動的に変更する

8章動的なフォーム

  • はじめに
  • レシピ8.1 最初のテキストフィールドに自動的にフォーカスを移動する
  • レシピ8.2 一般的なテキストフィールドの検証を行う
  • レシピ8.3 検証に失敗した場合にフォームの送信を抑止する
  • レシピ8.4 入力が不正なテキストフィールドに自動的にフォーカスを移動する
  • レシピ8.5 カスタム検証オブジェクトを使う
  • レシピ8.6 フォームの動作を変更する
  • レシピ8.7 エンターキーでフォームを送信しないようにする
  • レシピ8.8 エンターキーを使ってフォーカスを次のテキストフィールドに移動する
  • レシピ8.9 任意のテキストボックス中でエンターキーを押下してフォームを送信する
  • レシピ8.10 フォームコントロールを無効にする
  • レシピ8.11 フォームコントロールを隠したり表示したりする
  • レシピ8.12 テキストボックスへの入力を数値のみ(または英字のみ)に限定する
  • レシピ8.13 固定長のテキスト入力ボックスに対して自動的にタブ移動する
  • レシピ8.14 選択リストの内容を変更する
  • レシピ8.15 ページ間でフォームデータをコピーする

9章 イベント処理

  • はじめに
  • レシピ9.1 IEとW3Cイベントモデルの差異を吸収し均一化する
  • レシピ9.2 ページが読み込まれた後に処理を実行する
  • レシピ9.3 複数のloadイベントハンドラを追加する
  • レシピ9.4 クリックイベントの座標を調べる
  • レシピ9.5 イベントに対してデフォルトの処理が行われるのを抑止する
  • レシピ9.6 ダブルクリックをブロックする
  • レシピ9.7 どの要素がイベントを受け取るのかを判定する
  • レシピ9.8 どのマウスボタンが押されていたのかを判定する
  • レシピ9.9 どの文字が入力されたのかを読み出す
  • レシピ9.10 非文字キーのどのキーが押されたのかを取得する
  • レシピ9.11 イベントの間に修飾キーが押されていたかどうかを判定する
  • レシピ9.12 マウスカーソルの移動元/移動先となる要素を判定する
  • レシピ9.13 音をイベントに同期させる

10章 ページのナビゲーション

  • はじめに
  • レシピ10.1 新しいページまたはアンカーを読み込む
  • レシピ10.2 ページをブラウザの履歴に残さないようにする
  • レシピ10.3 select要素を使ってページを移動する
  • レシピ10.4 クッキーを使ってページ間でデータをやり取りする
  • レシピ10.5 フレームを使ってページ間でデータをやり取りする
  • レシピ10.6 URLを使ってページ間でデータをやり取りする
  • レシピ10.7 コンテキストメニュー(右クリックメニュー)を作成する
  • レシピ10.8 ナビゲーション用にドロップダウンメニューを作成する
  • レシピ10.9 「パンくず」リストメニューを提供する
  • レシピ10.10 折りたたみ式メニューを作成する
  • レシピ10.11 折りたたみ式XMLメニューを作成する

11章 スタイルシートの管理

  • はじめに
  • レシピ11.1 要素に対して、グローバルなスタイルシートルールを設定する
  • レシピ11.2 スタイルシートルールを要素のグループに対して設定する
  • レシピ11.3 個々の要素にスタイルシートルールを設定する
  • レシピ11.4 外部スタイルシートをインポートする
  • レシピ11.5 ブラウザやオペレーティングシステム用に特化したスタイルシートをインポートする
  • レシピ11.6 読み込んだ後にインポートされたスタイルシートを変更する
  • レシピ11.7 スタイルシートを有効/無効にする
  • レシピ11.8 要素に対するスタイルシートを切り替える
  • レシピ11.9 スタイルシートルールを上書きする
  • レシピ11.10 任意のコンテンツをスタイル付き要素にする
  • レシピ11.11 ボディ要素をセンタリング表示する
  • レシピ11.12 スタイルシートの有効なプロパティ値を読み出す
  • レシピ11.13 最新のブラウザを強制的に標準互換モードにする

12章 静止コンテンツのための視覚効果

  • はじめに
  • レシピ12.1 画像を先読みしてキャッシュする
  • レシピ12.2 画像を置換する(ロールオーバー)
  • レシピ12.3 JavaScriptを使って、ロールオーバー用にダウンロードする画像の数を削減する
  • レシピ12.4 CSSを使って、ロールオーバー用にダウンロードする画像の数を削減する
  • レシピ12.5 画像の大きさを動的に変更する
  • レシピ12.6 テキストスタイルプロパティを変更する
  • レシピ12.7 ボディ部のテキストの大きさをユーザが選択できるようにする
  • レシピ12.8 カスタムリンクスタイルを作成する
  • レシピ12.9 背景色と背景画像を変更する
  • レシピ12.10 要素を隠す/表示する
  • レシピ12.11 要素の透明度を調整する
  • レシピ12.12 トランジション効果を生成する
  • レシピ12.13 canvas要素に図を描画する

13章 HTML要素の位置指定

  • はじめに
  • レシピ13.1 要素をドキュメント空間中で位置指定できるようにする
  • レシピ13.2 位置指定要素をボディ部の要素に接続する
  • レシピ13.3 DHTMLライブラリを使って位置を制御する
  • レシピ13.4 divコンテナとspanコンテナのどちらを使用すればよいかを決める
  • レシピ13.5 位置指定要素の重ね合わせ順序(Z座標)を変更する
  • レシピ13.6 要素をほかの要素上にセンタリングする
  • レシピ13.7 ウィンドウやフレームの中で要素をセンタリングする
  • レシピ13.8 位置指定要素ではない要素の位置を取得する
  • レシピ13.9 要素を直線に沿って移動する
  • レシピ13.10 要素を円周に沿って移動する
  • レシピ13.11 ドラッグ可能な要素を作る
  • レシピ13.12 div要素のコンテンツをスクロールする
  • レシピ13.13 カスタムスクロールバーを作る
  • レシピ13.14 スライダーコントロールを作成する

14章 動的なコンテンツの作成

  • はじめに
  • レシピ14.1 ページを読み込んでいる間に動的にコンテンツを記述する
  • レシピ14.2 新しいページのコンテンツを動的に作成する
  • レシピ14.3 外部のHTMLコンテンツをインクルードする
  • レシピ14.4 XMLデータを埋め込む
  • レシピ14.5 データをJavaScriptオブジェクトとして埋め込む
  • レシピ14.6 XMLデータをHTMLテーブルに変換する
  • レシピ14.7 JavaScriptオブジェクトをHTMLテーブルに変換する
  • レシピ14.8 XMLノードツリーをJavaScriptオブジェクトに変換する
  • レシピ14.9 新しいHTML要素を作成する
  • レシピ14.10 新しい要素用にテキストコンテンツを作成する
  • レシピ14.11 要素とテキストノードが混在したものを作成する
  • レシピ14.12 iframe要素を挿入しコンテンツを追加する
  • レシピ14.13 HTML要素オブジェクトの参照を取得する
  • レシピ14.14 同じクラスのすべての要素を参照する
  • レシピ14.15 ボディコンテンツの一部を置き換える
  • レシピ14.16 ボディ部のコンテンツを削除する
  • レシピ14.17 XMLHttpRequestを使ってRESTリクエストを送信する
  • レシピ14.18 XMLHttpRequestを使ってSOAP呼び出しを行う
  • レシピ14.19 動的にテーブルをソートする
  • レシピ14.20 ドキュメントノードツリーをたどる
  • レシピ14.21 ドキュメントコンテンツを取得する

15章 動的コンテンツを使ったアプリケーション

  • はじめに
  • レシピ15.1 ランダムに格言を表示する
  • レシピ15.2 ユーザが選択した範囲を任意の要素に変換する
  • レシピ15.3 ボディ部のコンテンツを検索/置換する
  • レシピ15.4 ユーザがテキストを編集できるようなページを設計する
  • レシピ15.5 スライドショーを作成する
  • レシピ15.6 ページを自動スクロールする
  • レシピ15.7 ユーザに対してユーザの時刻に合わせたあいさつをする
  • レシピ15.8 クリスマスまでの日数を表示する
  • レシピ15.9 カウントダウンタイマーを表示する
  • レシピ15.10 カレンダを使った日付選択ツールを作成する
  • レシピ15.11 プログレスバーを表示する

付録A キーボードイベントの文字コード値

付録B キーボードのキーコード値

付録C ECMAScriptの予約語

索 引