“地名生成ツール”の不具合について

ある日、”‘地名生成ツール’が動かない”という連絡があり、手持ちのAndroidで確認してみました。すると、FirefoxとChromeでは正常に動作し、ブラウザではボタンが表示されないことが判明したのです。

browser_place-name-generate

表示されるはずのボタンがありません。

その後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では動作しません。

原因の解明には苦戦しましたが、修正できたのでよしとしましょう!

コメント