ファイル情報表示プログラム

windowObj = new Object();
windowObj.winNo = 1; // 表示するウィンドウの番号
windowObj.winTop = 150; // 表示するウィンドウの上位置
windowObj.winLeft = 10; // 表示するウィンドウの左位置
windowObj.zIndex = 100; // 表示するウィンドウのZ座標
windowObj.posStep = 20; // 次に表示するウィンドウのオフセット位置
windowObj.posLimit = 400; // 表示するウィンドウの下限
windowObj.posTopStart = 150; // 位置をリセットした時の初期値(上)
windowObj.posLeftStart = 10; // 位置をリセットした時の初期値(左)
windowObj.width = 480; // ウィンドウの横幅
windowObj.height = 80; // ウィンドウの縦幅

window.onload = function() {
$("ajaxForm").onsubmit = function() {
var cURL = $F("checkURL");
if (cURL == "") {
alert("URLを入力してください");
return false;
}
var filename = cURL.split(".");
var ext = filename[filename.length-1];
if((ext != "txt") && (ext != "html") && (ext != "htm") && (ext != "xml")) {
alert("対応できないファイル形式です");
return false;
}
var url = "fileinfo.cgi?checkURL="+encodeURIComponent(cURL)+"&cache="+(new Date()).getTime();
new Ajax.Request(url, { method: "get", onSuccess: windowObj.windowOpen,
onFailure:function(){ alert("ファイルが見つかりません"); } });
return false;
}
$("checkURL").focus();
}

windowObj.windowOpen = function(httpObj) {
var textData = windowObj.info(httpObj.responseText);
var subwin = new Window("win"+windowObj.winNo,
{ className: "dialog", title: "情報:"+$F("checkURL"),
left:windowObj.winLeft, top:windowObj.winTop,
width:windowObj.width, height:windowObj.height,
zIndex:windowObj.zIndex });
subwin.getContent().innerHTML = textData;
subwin.show();
windowObj.winNo++;
windowObj.zIndex++;
windowObj.winTop += windowObj.posStep;
windowObj.winLeft += windowObj.posStep;
if (windowObj.winTop > windowObj.posLimit) {
windowObj.winTop = windowObj.posTopStart;
windowObj.winLeft = windowObj.posLeftStart;
}
$("checkURL").focus();
}
windowObj.info = function(textData) {
var LF = String.fromCharCode(10); // 改行コード
var CR = String.fromCharCode(13); // 改行コード
var txt = "■ファイル情報<br>";
try { txt += "行数(LF):"+textData.split(LF).length+"<br>"; }catch(e){ txt += "行数(LF):0<br>" }
try { txt += "行数(CR):"+textData.split(CR).length+"<br>"; }catch(e){ txt += "行数(CR):0<br>" }
try { txt += "文字数(改行コード等含む):"+textData.length+"<br>"; }catch(e){ txt = "文字数:0<br>" }
try { txt += "brタグの数:"+textData.match(/_br/gim).length+"<br>"; }catch(e){ txt += "brタグの数:0<br>" }
try { txt += "divタグの数:"+textData.match(/_div/gim).length+"<br>"; }catch(e){ txt += "divタグの数:0<br>" }
try { txt += "spanタグの数:"+textData.match(/_span/gim).length+"<br>"; }catch(e){ txt += "spanタグの数:0<br>" }
try { txt += "scriptタグの数:"+textData.match(/_script/gim).length+"<br>"; }catch(e){ txt += "scriptタグの数:0<br>" }
return txt;

・サンプルを実行
・サンプルをダウンロード
Ajax実践テクニック 説明などは本書を参考にしてください。JavaScript以外のソースはデータをダウンロードするか本書を参照してください。