prototype.jsは、jQueryと同様のJavaScriptライブラリです。
prototype.は膨大な機能があるので、ここでは私が興味をもった、Ajax.UpdaterとAjax.Requestだけに限定してテストをしました。そのテスト結果の個人的メモです。
例1:Ajax.Updaterによる全体表示
例2:Ajax.Requstによる全体表示
例3:Ajax.Requestによる部分表示
基本的に親ファイルの表示個所に、子ファイルをそのまま記述したのと同じなので、子ファイルの画像表示やHead部に記述したスクリプトは、親ファイルに表示したときにそれらが反映しなくなります。それに関しては、「Test」を参照してください。
Ajax.Updaterは、子ファイルを読み込んで、親ファイルの任意の場所に表示する機能です。
▼▼▼▼▼ ここから ▼▼▼▼▼
▲▲▲▲▲ ここまで ▲▲▲▲▲
<script type="text/javascript"> function 例1(表示場所, 子ファイル名) { new Ajax.Updater( // A 表示場所, // B 子ファイル名, { method: "get" } // C ); } </script> <input type="button" value="例1実行" onclick='例1("例1表示場所", "called/called1.html")'> </input> <div id="例1表示場所"></div>
例1:Ajax.Updaterによる全体表示と同じことを、Ajax.Request を使って行います。
▼▼▼▼▼ ここから ▼▼▼▼▼
▲▲▲▲▲ ここまで ▲▲▲▲▲
<script type="text/javascript"> function 例2(表示場所, 子ファイル名) { new Ajax.Request( // D 子ファイル名, { method: "get", onSuccess: function(読込情報) { // E 例2読込後処理(表示場所, 読込情報.responseText); } // F┘ } ); } function 例2読込後処理(表示場所, 読込文) { // G $(表示場所).innerHTML = 読込文; // H } </script> <input type="button" value="例2実行" onclick='例2("例2表示場所", "called/called1.html")'></input> <div id="例2表示場所"></div>
例2での「例2読込後処理」の部分を書き換えることにより、読み込んだ子ファイルの内容から特定の個所だけを表示したり、変更して表示することができます。
次の例では、文中に「h4」の文字列がある行だけを選択して表示しています。
▼▼▼▼▼ ここから ▼▼▼▼▼
▲▲▲▲▲ ここまで ▲▲▲▲▲
<script type="text/javascript"> function 例3(表示場所, 子ファイル名) { new Ajax.Request( 子ファイル名, { method: "get", onSuccess: function(読込情報) { 例3読込後処理(表示場所, 読込情報.responseText); } } ); } function 例3読込後処理(表示場所, 読込文) { var 行 = 読込文.split("\n"); // I var 表示内容 = ""; for (var i = 0; i < 行.length; i++) { if (行[i].search(/h4/i) >= 0) { // J 表示内容 += 行[i]; }; }; $(表示場所).innerHTML = 表示内容; } </script> <input type="button" value="例3実行" onclick='例3("例3表示場所", "called/called1.html")'></input> <div id="例3表示場所"></div>