正誤表 目次 02-09 about() ↓ abort() CHAPTER 01 Ajaxの基礎知識‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 1 01- 01 Ajaxとは‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2 01-01-01 Ajaxなサイトの登場‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2 01-01-02 Ajaxの提唱‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥3 01-01-03 DHTMLとブラウザ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥4 01-01-04 Ajaxがもたらすもの‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥5 01- 02 非同期通信‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥6 01- 03 Ajaxのメリットとデメリット‥‥‥‥‥‥‥‥‥‥‥8 01-03-01 Ajaxのメリット‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥8 ・HTML+サーバーサイド(PHP、Perl、Java…)に対して‥‥‥‥‥8 ・Flashに対して‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥10 P11(2版でFix) 「クライアント部分はオープンソース言語たるJavaScript」 ↓ 「クライアント部分はスクリプトソースが強制的に公開されてしまう言語JavaScript」 もしくは、「クライアント部分は強制的オープンソース言語たるJavaScript」 01-03-02 デメリット‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥11 P11(2版でFix) (3)項 ↓ (3)JavaScript部分は、ソース丸見えゆえに厳しい競争にさらされる サーバー側はともかく、クライアント側は、JavaScriptですから、 ソースは丸見えです。このJavaScriptのソースの公開性は、技術の普及速度を上 げて、一般的には、ユーザーに利益をもたらすともいえますが、 たとえば、企業などが新しいプログラム的なアイデアなどを「秘匿 することで優位性を保つ」といった方法での、他社との差別化を図る ことは難しいといえるかもしれません。 01-04 セキュリティ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥13 01-04-01 クロスドメインの制約‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥13 01-04-02 クロスサイトスクリプティング‥‥‥‥‥‥‥‥‥‥‥‥‥‥13 01-04-03 SQL/OSコマンドインジェクション‥‥‥‥‥‥‥‥‥‥‥‥‥15 P15 $GET_['id'](三箇所あり) ↓ $_GET['id'] 01-04-04 パスワードファイルの管理‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥15 CHAPTER 02 XMLHttpRequestリファレンス‥‥‥‥ 17 02 - 01 XMLHttpRequestとは‥‥‥‥‥‥‥‥‥‥‥‥‥18 02-01-01 実装の状況‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥18 02-01-02 XMLHttpRequestオブジェクトの送受信‥‥‥‥‥‥‥‥‥‥18 02-01-03 XMLHttpRequestオブジェクトを作成する‥‥‥‥‥‥‥‥‥19 02-01-04 HTTPリクエストを発行する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥21 ・初期化:open() ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥21 ・送信:send() ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥21 ・GET‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥22 ・POST ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥23 02-01-05 着信とデータ処理‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥23 ・着信(1):onreadystatechange ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥23 ・着信(2):onload‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥24 ・データ(TEXT):responseText ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥24 ・データ(XML):responseXML ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥28 02-02 リファレンスの読み方‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥29 02-03 XMLHTTP ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥30 02-04 XMLHttpRequest ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥31 *注意 Windows IE 7ではXMLHTTPの他にXMLHttpRequestがネイティブサポートされる予定です 02-05 responseXML ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥32 P32 MSXML なし ↓ MSXML 2.0以降 02-06 responseText ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥33 02-07 status ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥34 02-08 statusText ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥35 02-09 about()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥36 02-10 getAllResponseHeaders()‥‥‥‥‥‥‥‥‥‥37 02-11 getResponseHeader()‥‥‥‥‥‥‥‥‥‥‥‥38 02-12 open()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥39 P39 以下は、POSTで「http://jsgt.org/ajax/」へ… ↓ POSTで「http://jsgt.org/ajax.cgi」へ… 02-13 send()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥40 02-14 setRequestHeader()‥‥‥‥‥‥‥‥‥‥‥‥‥‥41 02-15 readyState ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥42 02-16 onreadystatechange ‥‥‥‥‥‥‥‥‥‥‥‥‥43 P43 書式 …function ハンドラ関数名()(oj) … ↓ 書式 …function ハンドラ関数名(oj) … P43 oj.readyState == 4 が3箇所ハイライトされている。 ↓ 3箇所とも、oj.onreadystatechangeをハイライトに変更。 02-17 onload ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥45 P45 書式 …function ハンドラ関数名()(oj) … ↓ 書式 …function ハンドラ関数名(oj) … 02-18 Ajaxのクロスブラウザ対策‥‥‥‥‥‥‥‥‥‥‥‥46 02-18-01 Ajaxを使えないブラウザのために‥‥‥‥‥‥‥‥‥‥‥‥‥46 ・JavaScriptが使えない場合‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥46 ・Ajaxが使えない場合‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥47 ・Google Mapsの場合‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥48 02-18-02 ユーザーエージェントサンプル‥‥‥‥‥‥‥‥‥‥‥‥‥‥48 ・ブラウザ別ユーザーエージェント文字列&分岐サンプル‥‥‥‥‥49 P51 Epiphany系 コードの中が….indexOf("Galeon")… ↓ ….indexOf("Epiphany")…に修正 02-18-03 readyState値が「3」(INTERACTIVE)の場合の動作‥‥‥‥‥‥53 02-18-04 Operaのonreadystatechange ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥53 02-18-05 OperaでsetRequestHeader ()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥54 02-18-06 OperaとSafariのBasic認証‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥54 02-18-07 responseTextの文字コード‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥55 ・UTF-8がOK‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥55 ・UTF-8がNG ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥55 P55 UTF-8 OK Win Netscape 1.x? ↓ UTF-8 OK Win Netscape 6.x 7.x ・回避例(1) ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥56 ・回避例(2) ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥56 02-18-08 responseXMLの文字コード‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥56 02-18-09 responseXMLデータのXML宣言‥‥‥‥‥‥‥‥‥‥‥‥‥‥56 02-19 Ajax用簡易クロスブラウザライブラリ‥‥‥‥‥57 02-19-01 jslb-ajaxライブラリの構成‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥57 02-19-02 インクルード‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥58 02-19-03 リファレンス‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥58 P58 mcharset ↓ charset ・関数chkAjaBrowser ()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥58 ・関数createHttpRequest ()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥58 ・関数sendRequest ()‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥59 02-19-04 簡易クロスブラウザライブラリのコード‥‥‥‥‥‥‥‥‥‥60 CHAPTER 03 Google Maps API(Google Mapsを自分のページに設置‥ 65 2005.12.06 Google Mapsの測地系変更実施に伴いCHAPTER 03のサンプルを新測地系に 対応修正しました。したがって、ダウンロードサンプルの座標等は、 本書と多少異なりますのでご了承ください。 03-01 Google Maps設置までの流れ‥‥‥‥‥‥‥‥‥66 03-02 サンプルHTMLコードの基本構成‥‥‥‥‥‥‥‥70 03-03 Google Mapsの動作ブラウザと対処方法‥‥‥72 03-03-01 GBrowserLsCompatible()関数‥‥‥‥‥‥‥‥‥‥‥‥‥‥72 ・実例(1):動作しないブラウザの場合、別のページへ移動‥‥‥‥‥‥‥72 ・実例(2):動作しないブラウザの場合、ダイアログを表示‥‥‥‥‥‥‥73 ・実例(3):動作しないブラウザの場合、mapDIVにメッセージを書き出す‥‥73 03-04 XHTML、VML ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥74 03-05 座標を指定する(基本サンプル)‥‥‥‥‥‥‥‥‥‥75 03-05-01 座標と倍率を指定する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥75 03-05-02 世界測地系と日本測地系‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥76 03-05-03 度分秒表記と百分率表記‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥77 P77(3版でFix) 百分率表記を度分秒表記にするスクリプトのminとsecが逆でした var min = Math.floor(data / 100) % 60 ; var sec = Math.floor(data / 6000) % 60 ; ↓ var min = Math.floor(data / 6000) % 60 ; var sec = Math.floor(data / 100) % 60 ; 03-06 地図をアニメーション移動する‥‥‥‥‥‥‥‥‥‥78 03-06-01 一点から一点へ移動する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥78 03-06-02 連続して移動する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥79 03-07 地図にコントロールを追加する‥‥‥‥‥‥‥‥‥‥81 03-08 イベント処理を追加する‥‥‥‥‥‥‥‥‥‥‥‥‥‥83 03-09 情報ウィンドウを表示する‥‥‥‥‥‥‥‥‥‥‥‥85 ・文字をHTMLで渡す‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥86 P86 幅の指定をしないと、FirefoxとSafariでウインドウ内の幅が狭くなるようですので幅を指定します。 var msg = "<b>レインボーブリッジ</b>です。<br />HTMLです。"; ↓ var msg = "<div style='width:250px'><b>レインボーブリッジ</b>です。<br />HTMLです。</div>"; ・おまけ追加 文字をHTMLで渡す(iframeでスクロール)‥‥‥‥‥‥‥‥‥‥ダウンロードサンプル ・おまけ追加 文字をHTMLで渡す(style='overflow:scroll'でスクロール)‥ダウンロードサンプル 03-10 地図にレイヤーを重ねる(1)(線分を表示)‥‥‥‥‥87 03-11 地図にレイヤーを重ねる(2)(アイコンを表示)‥‥89 03-12 地図にレイヤーを重ねる(3)(マーカーを表示)‥‥91 03-13 マーカークリックで情報ウィンドウを表示する‥‥93 P94(3版でFix) 幅の指定をしないと、FirefoxとSafariでウインドウ内の幅が狭くなるようですので幅を指定します。 marker.openInfoWindowHtml("浄土庭園です!"); ↓ marker.openInfoWindowHtml("<div style='width:100px'>浄土庭園です!</div>"); 03-14 情報ウィンドウに画像などを表示する‥‥‥‥‥‥95 P96(3版でFix) 幅の指定をしないと、FirefoxとSafariでウインドウ内の幅が狭くなるようですので幅を指定します。 var html = '<img src="'+img.src+'" align="left"/>' + '<b>【牛久大仏/浄土庭園】</b><br />' + '2005.8.15参拝<br />' + '超高層巨大仏です。' ↓ var html = '<div style="width:300px"><img src="'+img.src+'" align="left"/>' + '<b>【牛久大仏/浄土庭園】</b><br />' + '2005.8.15参拝<br />' + '超高層巨大仏です。</div>' 03-15 ドラッグなどで移動しても中心を指すアイコン‥‥97 P97(3版でFix) サンプルのファイル名 sample.xml ↓ サンプルのファイル名 sample.htm 03-16 クリックでマーカーを表示・非表示する‥‥‥‥‥99 03-17 自作アイコンの応用‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥101 P102(3版でFix) 幅の指定をしないと、FirefoxとSafariでウインドウ内の幅が狭くなるようですので幅を指定します。 var html = "マーカー<b>" + msg + "</b>"; ↓ var html = "<div style='width:250px'>マーカー<b>" + msg + "</b></div>"; 03-18 XMLで座標を読み込む‥‥‥‥‥‥‥‥‥‥‥‥‥‥103 03-19 CSVで座標を読み込む‥‥‥‥‥‥‥‥‥‥‥‥‥‥105 03-20 JSONで座標を読み込む‥‥‥‥‥‥‥‥‥‥‥‥‥106 03-21 Ajaxな通信で座標を連続して読み込む‥‥‥‥107 03-22 GPS携帯の位置を表示する‥‥‥‥‥‥‥‥‥‥‥109 P110 日本ではゼンリンの地図で日本則理系になっています。 ↓ 日本ではゼンリンの地図で日本則理系になっていましたが、 2005.12より、世界測地系に変わりました。 P110 each($gets) ↓ each($_GET) 03-23 GPS携帯のドライブルートを表示する‥‥‥‥112 03-24 ドライブルートをアニメーション表示する‥‥116 03-25 2画面連動で表示する(広域と詳細)‥‥‥‥‥‥‥120 03-26 2画面連動で表示する(地図と衛星写真)‥‥‥‥‥122 03-27 都道府県庁をSELECT選択で地図表示する‥‥124 03-28 情報ウィンドウにマーカー付近の地図を表示する‥‥‥129 ・マーカークリックで周辺の広域衛星写真をウィンドウに表示‥‥129 ・マーカークリックで《キャプション》をウィンドウに表示‥‥‥‥130 03-29 XSLTを利用してデータを表示する‥‥‥‥‥‥131 03-30 DoCoMo携帯のiエリアをポリライン表示する‥‥‥‥135 03-31 付録:経度・緯度を調べる(地図作成作業補助サンプル)‥‥‥139 CHAPTER 04 Ajax基本サンプル‥‥‥‥‥‥‥‥‥‥‥‥ 143 04-01 受信‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥142 04-01-01 TEXTを動的受信‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥142 ・文字化け対策‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥143 P143 UTF-8エンコード ↓ UTF-8+URIエンコード ・ブラウザごとの文字化け状況‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥144 04-01-02 XMLを動的受信‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥145 ・responseXMLの利用‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥146 04-01-03 JSONを動的受信‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥147 P148コラムJSONで function (){ alert('This is method') } ↓ "function (){ alert('This is method') }" P148コラムJSONで 「oj.メソッド名()」 ↓ 「eval(oj.メソッド名())」 04-02 サーバー側言語と連携‥‥‥‥‥‥‥‥‥‥‥‥‥‥149 04-02-01 Ajax+PHP‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥149 ・Ajaxなクライアント・サーバー通信‥‥‥‥‥‥‥‥‥‥‥‥‥150 04-02-02 Ajax+Perl ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥152 ・Ajaxなクライアント・サーバー通信‥‥‥‥‥‥‥‥‥‥‥‥‥153 04-03 データベースと連携‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥154 04-03-02 Ajax+PHP+bsh+MySQL ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥157 ・Ajaxなクライアント・サーバー通信(シェル上のMySQLからデータ取得)‥159 P159 P159 ダイアログダイアログ ↓ フォーム 04-03-03 Ajax+PHP+PGSQL ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥160 ・Ajaxなクライアント・サーバー通信(PostgreSQLからデータ取得)‥162 04-03-04 Ajax+PHP+SQLite ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥163 ・Ajaxなクライアント・サーバー通信(SQLiteからデータ取得)‥‥‥164 04-03-05 Ajax+PHP+bsh+SQLite‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥165 ・Ajaxなクライアント・サーバー通信(SQLiteからデータ取得)‥‥‥167 04-03-06 Ajax+Perl+MySQL ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥168 ・Ajaxなクライアント・サーバー通信(MySQLからPerlでデータ取得)‥‥172 04-04 Ajaxで認証‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥170 04-04-01 Basic認証について‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥170 ・パスワードファイル(.password)‥‥‥‥‥‥‥‥‥‥‥‥‥‥171 P171(3版でFix) ・Windowsの場合 本書のサンプルサイト、、、から3行分。 ↓ ・Windowsの場合 Apacheの場合は、binディレクトリ内にあるhtpasswd.exeでLinuxの場合と同様に作ります。 ( IISの場合は、[コントロールパネル]-[管理ツール]からIISサービスを選び、 [Web サイトのプロパティ] - [ディレクトリ/ファイル セキュリティ] - [匿名アクセスおよび認証コントロール]の「編集」で「基本認証」へチェックし、 Windows ユーザー アカウントのパスワードを利用します。) ・アクセス制御用ファイル(.htaccess)‥‥‥‥‥‥‥‥‥‥‥‥172 04-04-02 Basic認証ページを受信(1) ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥174 ・Basic認証ページのデータをAjaxで動的に読み込む‥‥‥‥‥‥176 04-04-03 Basic認証ページを受信(2) ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥177 ・Base64でパスワードをエンコードし、Basic認証‥‥‥‥‥‥‥179 04-05 暗号化通信SSLの利用‥‥‥‥‥‥‥‥‥‥‥‥‥‥180 04-05-01 SSLで受信する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥180 P180 ファイル構成のtest.xml ↓ test.txt ・Ajaxなクライアント・サーバー通信でSSLを利用‥‥‥‥‥‥‥181 P181 UTF-8エンコード ↓ UTF-8+URIエンコード 04-05-02 SSL+Basic認証‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥182 ・Ajaxなクライアント・サーバー通信でSSLを利用‥‥‥‥‥‥‥184 P184 04-05-01(→P.180) ↓ 04-04-02(→P.180) CHAPTER 05 送信時イベントタイプ別サンプル‥‥‥‥ 185 05-01 (onclick)ボタンをクリック‥‥‥‥‥‥‥‥‥‥186 05-01-01 入力フィールド→PHP→innerHTML ‥‥‥‥‥‥‥‥‥‥‥186 05-01-02 入力フィールド→PHP→入力フィールド‥‥‥‥‥‥‥‥‥‥188 05-01-03 入力フィールド→Perl→入力フィールド‥‥‥‥‥‥‥‥‥‥190 05-02 (onclick)ラジオボタンをクリック‥‥‥‥‥‥192 05-02-01 ラジオボタン→PHP→入力フィールド‥‥‥‥‥‥‥‥‥‥‥192 05-02-02 ラジオボタン→PHP→innerHTML ‥‥‥‥‥‥‥‥‥‥‥‥194 P195 このとき、すべてのタグを有効にすることはセキュリティ上絶対に さけるべきです。 ↓ 実際の応用場面では入力データを合成してレスポンスするケースが 多いと思いますので、このケースでは過剰ともいえるタグ無効化/ 復号化の処理をあえて入れてあります。少なくとも、ユーザーからの入力データ を返す場合は、すべてのタグを有効にすることはセキュリティ上絶対にさけるべ きです。 一応、念のために、サーバー側のタグ無効化/復号化の処理をスルーさせる予備 のダウンロードサンプルを追加しました。 →05-02-02 sample2.htm。 05-03 (onclick)リンククリック‥‥‥‥‥‥‥‥‥‥‥‥196 05-03-01 リンク→TEXTファイル→innerHTML ‥‥‥‥‥‥‥‥‥‥‥196 P197 UTF-8エンコード ↓ UTF-8+URIエンコード 05-04 (onmouseover)リンクに触る‥‥‥‥‥‥‥‥198 05-04-01 リンク→HTMLファイル→innerHTML ‥‥‥‥‥‥‥‥‥‥‥198 05-05 (onfocus)入力フィールドへカーソルを入れる‥‥‥200 05-05-02 入力フィールド→PHP→innerHTML ‥‥‥‥‥‥‥‥‥‥‥200 P200 タイミングで、フォームに入力したデータをPHPへAjax送信し ↓ タイミングで、リクエストをPHPへAjax送信し 05-06 (onblur)入力フィールドからカーソルを出す‥‥‥‥202 05-06-01 入力フィールド→PHP→innerHTML ‥‥‥‥‥‥‥‥‥‥‥202 P202 コードのコメントの「関数sendRequest()で""を送出」 ↓ 「関数sendRequest()でデータを送出」 05-07 (onkeyup)入力フィールドで毎時入力時‥‥‥204 05-07-01 入力フィールド→PHP→innerHTML ‥‥‥‥‥‥‥‥‥‥‥204 P204 コードのコメントの「関数sendRequest()で""を送出」 ↓ 「関数sendRequest()でデータを送出」 05-08 (onkeypress)入力フィールドで改行する‥‥206 P206 コードのコメントの「関数sendRequest()で""を送出」 ↓ 「関数sendRequest()でデータを送出」 05-08-01 入力フィールド→PHP→innerHTML ‥‥‥‥‥‥‥‥‥‥‥206 05-09 (onchange)SELECT ‥‥‥‥‥‥‥‥‥‥‥‥‥208 05-09-01 ボタン→XML→SELECT書き換え‥‥‥‥‥‥‥‥‥‥‥‥‥208 P211 コラム (2箇所) var value = xdoc.getElementsByTagName("value") ↓ var values = xdoc.getElementsByTagName("value") P211 コラム (2箇所) var value1 = data.values[0].... ↓ var value1 = values[0].... 05-09-02 SELECT選択→XML→SELECT書き換え‥‥‥‥‥‥‥‥‥‥212 CHAPTER 06 入出力エフェクト‥‥‥‥‥‥‥‥‥‥‥‥‥ 217 06-01 不透明度‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥218 06-01-01 半透明DIVへ出力‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥218 06-01-02 半透明のフェードインで現れるメニュー‥‥‥‥‥‥‥‥‥‥220 06-02 フロート‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥224 06-02-01 ドラッガブルフロートなDIVへ出力‥‥‥‥‥‥‥‥‥‥‥‥224 P225 サーバー側 PHP ↓ クライアント側 JavaScript 06-02-02 フロートDIVへフェードインしつつ出力‥‥‥‥‥‥‥‥‥‥235 06-03 スライダー‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥239 06-03-01 スライダーバーでデータ読み込み‥‥‥‥‥‥‥‥‥‥‥‥‥239 P241(3版でFix) div1.onmoveがfirefox、safariで動作しないため修正 //スライダーを動かした時に発生するイベント div1.onmove = function(){ //現在位置Xを取得 nowDiv1X = parseInt(div1.getMouseX()) } //スライダーからマウスを上げた時に発生するイベント div1.onmouseup = function(){ ↓ 正1 (ダウンロードサンプルはこれに修正しました) //スライダーからマウスを上げた時に発生するイベント div1.onmouseup = function(event){ //現在位置Xを取得 nowDiv1X = parseInt(div1.getMouseX(event)) ↓ 正2 //スライダーを動かした時に発生するイベント div1.onmousemove = div1.onmove = function(event){ //現在位置Xを取得 nowDiv1X = parseInt(div1.getMouseX(event)) } //スライダーからマウスを上げた時に発生するイベント div1.onmouseup = function(){ P242 hello.htmを読み込む ↓ d*.htmを読み込む 06-04 ドラッグ&ドロップ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥243 P243 ファイル構成 └html/     ├jslib_ajax.js     ├jsgt_dragfloat07.js     ├menu0.htm     ├menu1.htm     ├menu2.htm     └sample.htm ↓ └html/     ├jslib_ajax.js     ├jsgt_dragfloat07.js     ├data1~5.htm     ├画像 yagi.jpg etc.     └sample.htm 06-04-01 ドラッグ&ドロップで選択したHTMLを表示‥‥‥‥‥‥‥‥243 P246(3版でFix) リセット関数resetSelにitem5とitem6が抜けていました。 sample フェードイン版 P244 P255 ライブラリ JavaScript ↓ クライアント側 JavaScript CHAPTER 07 XML ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 249 07-01 XMLを読み込む‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥250 07-01-01 responseTextとresponseXMLの違い‥‥‥‥‥‥‥‥‥‥‥250 07-01-02 メソッドを使ってDOMを取り出す‥‥‥‥‥‥‥‥‥‥‥‥252 07-02 RSSを読み込む(JKL.ParseXML)‥‥‥‥‥‥255 P256 <test>data</test> ↓ <test>data1</test> 07-03 別ドメインのRSSを読み込む‥‥‥‥‥‥‥‥‥‥259 P259 下から二行目の JavaScropt ↓ JavaScript CHAPTER 08 その他‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 263 08-01 クロスブラウザ・ベクターグラフィック‥‥‥‥264 08-01-01 DrawingCanvasクラス‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥264 08-01-02 三角形を描画する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥265 ダウンロードファイルcanvasParentのPが小文字になっていました。 <div id="canvasParent"></div> ↓ <div id="canvasparent"></div> 08-01-03 1ヵ月分のCSVデータを読み込んでグラフ化する‥‥‥‥‥‥266 08-02 郵便番号・住所あいまい検索‥‥‥‥‥‥‥‥‥‥‥269 08-02-01 AjaSQL ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥269 08-02-02 郵便番号・住所あいまい検索サンプル‥‥‥‥‥‥‥‥‥‥‥269 P270 SQL文を書き換えたい場合は、jslb_ajasql037.js ↓ SQL文を書き換えたい場合は、ajasql_zip2addr001.js 08-02-03 郵便番号データをデータベース化する‥‥‥‥‥‥‥‥‥‥‥274 ・1:ダウンロード‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥274 ・2:ファイルフォーマット‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥275 ・3:SQLiteによるデータベースの作成‥‥‥‥‥‥‥‥‥‥‥‥276 ・4:テーブル作成‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥277 ・5:データを検索する‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥278 ・6:Webで検索できるようにする‥‥‥‥‥‥‥‥‥‥‥‥‥‥279 APPENDIX ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 281 APPENDIX01 HTTP1.0/1.1リファレンス‥‥‥‥‥‥‥‥‥‥‥282 AP01-01 HTTPヘッダ一覧‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥282 P283 Cache-Controlヘッダが2つある ↓ 片方を削除 AP01-02 HTTPステータス一覧‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥286 AP01-03 HTTPメソッド一覧‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥287 APPENDIX02 Google Maps APIクラスリファレンス‥‥‥‥288 AP02-01 Gmap ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥288 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥288 ・メソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥289 AP02-02 Gmaker ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥296 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥296 ・メソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥296 ・イベント‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥297 AP02-03 Gpolyline ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥297 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥297 AP02-04 Gicon ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥298 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥298 ・プロパティ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥298 AP02-05 Gevent ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥300 ・静的なメソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥300 AP02-06 GXmlHttp ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥302 ・静的なメソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥302 AP02-07 GXml ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥303 ・静的なメソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥303 AP02-08 GXslt ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥304 ・静的なメソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥304 ・メソッド‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥304 AP02-09 Gpoint ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥304 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥304 ・プロパティ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥304 AP02-10 Gsize ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥305 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥305 ・プロパティ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥305 AP02-11 Gbounds‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥306 ・コンストラクタ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥306 ・プロパティ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥306 Index
2006.1.10 簡易ライブラリの関数sendRequest()で送信するデータの「&」や「=」が 送信できない問題については、とりあえず次のように対処してみてください。 →05-01-01。 (今後ライブラリ側を修正予定です) CHAPTER03~CHAPTER08 ダウンロードサンプル中にlanguage属性名がlanguegeとなっているものが ありましたので修正しました。この機会に、language = "JavaScript"もすべて、 type = "text/javascript"へ統一することにしました(2005.12.25)。 languege = "JavaScript" ↓ type = "text/javascript" language = "JavaScript" ↓ type = "text/javascript"