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>