JavaScriptファイルに引数を渡す(なるほどねー)を参考にする
大量のマニュアル作成で悩ましいのが「同じ事を複数のマニュアルに書く」という問題があって、Wordで管理している同僚の苦労を見かねて「HTMLでいいんじゃね?」と提言したもんだから、さらに悩む。
ハイパーリンクで構成すれば同じ記述の重複は発生しないけど「リンク無し!」「1ページに全ての情報を掲示したい」「微妙に写真とか文章が異なる」って条件で悩む。
以前作ったヤツ
HTML
<div class="copyright" id="copyright_change"><script type="text/javascript" charset="utf-8" src="js/copyright.js"></script></div>
JavaScript(copyright.js)
//http://www.fromdfj.net/javascript/innertext.html var copylength="Copyright© 2006-2010 kenmituo. All rights reserved."; if(document.all || document.getElementById){ // IE4/5、NN6用の分岐 if(document.all)document.all("copyright_change").innerHTML = copylength; else document.getElementById("copyright_change").innerHTML = copylength; } else if(document.layers){ // NN4.7用の分岐 with(document.layers["copyright_change"]){ document.open(); document.write(copylength); document.close(); } }
静的な文章を挿入するときに活用している書き方なんだけど、「微妙に写真とか文章が異なる」という条件には合わない。
そこで見つけたのがJavaScriptファイルに引数を渡す(なるほどねー)というサイト、試してみる。
HTML
<html> <body> <p>Script test</p> <div name="script" id="script"><script type="text/javascript" src="hoge.js?pc=1&vhs=1&ohc=0"></script> </div> </body> </html>
「?」の後ろに「"変数"=パラメーター」って記述で「&」で追加する。
hoge.js
//http://nplll.com/mutter/archives/2009/04/javascript_2.php var pc = new Array(); pc[0] = "Lavie"; pc[1] = "DELL"; pc[2] = "SONY"; var ohc = new Array(); ohc[0] = "Wolf Visione"; ohc[1] = "Anoymous"; var vhs = new Array(); vhs[0] = "victor"; vhs[1] = "toshiba"; var configs = new Object; var scripts = document.getElementsByTagName("script"); for (var i = 0; i < scripts.length; i++) { var s = scripts[i]; if (s.src && s.src.match(/hoge\.js(\?.*)?/)) { var params = s.src.replace(/.+\?/, ''); break; } } alert (params); params = params.split("&"); for(var i = 0; i < params.length; i++) { var tmp = params[i].split("="); configs[tmp[0]] = unescape(tmp[1]); } alert (pc[configs["pc"]]); alert (vhs[configs["vhs"]]); alert (ohc[configs["ohc"]]);
って感じで体感できた。