ある日、”‘地名生成ツール’が動かない”という連絡があり、手持ちのAndroidで確認してみました。すると、FirefoxとChromeでは正常に動作し、ブラウザではボタンが表示されないことが判明したのです。
表示されるはずのボタンがありません。
その後PCのIEで見ても、これと同じことが起こっていました。この原因を調べた結果、以下の記述に問題があることが分かりました。
function button(bool,msg,obj=document.form0.button1) {
obj.disabled = bool;
obj.value = msg;
}
一見何の問題もないように見えますが、1行目の
obj=document.form0.button1
という記述が引っかかっていたのです。これは、引数を変数に代入するもので、変数objにはボタンオブジェクトをあらかじめ代入し、参照できるようにするはずでした。これを、
function button(bool,msg) {
var obj = document.form0.button1;
obj.disabled = bool;
obj.value = msg;
}
とすると、うそのように解消したのです。どうやらこの記述方法は、AndroidのブラウザやInternet Explorerでは動作しません。
原因の解明には苦戦しましたが、修正できたのでよしとしましょう!