JavaScriptでなんちゃってGET
http://www.s-memo.net/blog/2007/03/javascriptget_1.phpオライリーのJavaScript 5版の使い方わからないコード
写経したので載せる・jsquoter.php
<?php header("Content-Type: text/javascript"); // URLから引数を取り出す。 $func = $_GET["func"]; // このjsコードから呼び出す関数、。 $filename = $_GET["url"]; // funcに渡すファイルやURL。 $lines = file($filename); // ファイルの内容を取り出す $text = implode("", $lines); // 文字列に連結する // 引用符や改行をエスケープする。 $escaped = str_replace(array("'", "\"", "\n", "\r"), array("\\'", "\\\"", "\\n", "\\r"), $text); // すべての内容をJavaScript関数呼び出し形式で出力する。 echo $func('$escaped'); ?>
・このJSコードはファイル?
HTTP.getTextWithScript = function(url, callback) { // 新たにscript要素を生成し、ドキュメントに追加する・ var script = document.createElement("script"); document.body.appendChild(script); // 一意な変数名を作成する var funcname = "func" + HTTP.getTextWithScript.counter++; // この名前で関数を定義し、この関数を便利な名前空間として利用する。 // サーバ側で生成するスクリプトがこの関数を呼び出す。 HTTP.getTextWithScript[funcname] = function(text) { // テキストをコールバック関数に渡す callback(text); // スクリプトタグと生成された関数を削除する。 document.body.removeChild(script); delete HTTP.getTextWithScript[funcname]; } // 読み出したいURLと関数名をエンコードして、jpquoter.phpサーバサイド // スクリプトに対する引数にする。スクリプトタグのsrcプロパティを // 変更して、このURLを読み出す。 script.src = "jsquoter.php" + "?url=" + encodeURIComponent(url) + "&func=" + encodeURIComponen("HTTP.getTextWithScript." + funcname); } // 同時に複数のリクエストを送信できるようにするため、この変数を使って、 一意なコールバック関数名を生成する。 HTTP.getTextWithScript.counter = 0;