以前の参考URLからjqueryを使用して、1ページ内に複数記述しても大丈夫なようにカスタマイズした。
このソースそ作成した時にはアップロード用の処理を書いていたので、ターゲットのscriptタグにはname=uploadと記載するようにしている。参考サイトのようにsrcのファイル名からターゲットを識別する事も考えたがjqueryのセレクタを使用する方が簡単だ。
//JavaScriptファイルのURLパラメータを取得する
//このif文は複数includeされた時用の重複定義防止
if( typeof upload_js_libs == 'undefined' ){
var upload_js_libs = 1;
//引数を格納する
var setting = new Object;
//初期処理
$(function(){
//このソースそ作成した時にはアップロード用の処理を書いていたので
//ターゲットのscriptタグにはname=uploadと記載するようにしている。
//参考サイトのようにsrcのファイル名からターゲットを識別する
//事も考えたがjqueryのセレクタを使用する方が簡単
var trg = $('script[name=upload]');
var n = 0;
for( n = 0; n < trg.length; n ++ ){
//引数取得
arg = upload_getSrcArgs($(trg[n]).attr('src'));
if( typeof arg['idx'] == 'undefined' ) continue;
//引数保持
setting[n] = arg;
//初期表示処理
/* .... */
//アップロード時の処理
/* .... */
});
function upload_getSrcArgs( src ){
ret = new Object;
tmp = src.split('?');
if( tmp.length < 2 ) return ret;
arg = tmp[1].split('&');
for( n = 0; n < arg.length; n ++ ){
tmp = arg[n].split('=');
ret[tmp[0]] = tmp[1];
}
return ret;
}
}