function execute() { var d = document; //効率化用 //scriptタグを配列で取得 var scripts; if (d.getElementsByTagName) scripts = d.getElementsByTagName("script"); else if (d.scripts) scripts = d.scripts; else if (d.all && d.all.tags) scripts = d.all.tags("script"); //取得できなかったら却下 if (!scripts) { document.write("非対応ブラウザです"); return; } var script = scripts[scripts.length -1]; //読みこみ中に実行されるので、最後のscriptが自分自身を表す var src = script.src; //自分自身のsrc属性(ここに引数も含まれる) var query = new Object(); //連想配列を作成([]だとN3でエラー) var pear, pears; //temp //この辺のブロックはcookieの処理にも効果的 if (src && src.indexOf("?") != -1) { //src属性があり、さらに?が含まれていたら src = src.substring(src.indexOf("?") +1); //?以降を全部取得(?は含まず) pears = src.split(";"); //引数の区切り文字( ; )で区切って配列へ分割 for (var i = 0; i < pears.length; i++) { //引数の数だけループ pear = pears[i].split("="); //さらに = で区切って配列へ分割 query[pear[0]] = pear[1]; //query["test1"] = "aiueo"; となる } } //これで引数の取得は完了 document.write("呼び出された<script>のsrc属性の値
  src="" + script.src + ""
"); //queryに含まれる引数を全部書きだし for (var prop in query) document.write("引数" + prop + "の値は" + query[prop] + "
"); return; //このサンプルはここで終わり //実際には以下のように if else で分岐して関数を実行させるのが現実的かも if (query["test1"]) //test1があったら myFunc1(); if (query["test2"] == "abcde") //test2の値が"abcde"だったら myFunc2(); if (query["arg1"] == "12345" && query["test3"]) //arg1の値が"12345"であり、かつtest3があったら myFunc3(query["test3"]); //test3の値を引数にする } execute();