- ベストアンサー
Mozilla5.0 と IE6.0の違い
Windowsxpで開発したソフトをIE6.0で起動すると (submitする時にjavascrirptを使っているのですが) 正常にjavascrirpt部分は動いているのですが Fedora Core 5にデフォルトで入っているブラウザのMozila5.0で起動すると、javascrirpt部分が全く働いてくれません。 Mozilla5.0とIE6.0の違いを教えていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
IEでは、 >document.forms(0).submit(); は、OKですが、 一般に javascriptでは、 document.forms[0].submit(); です。 たぶん、そこらへんでエラーになっているんじゃないかな
その他の回答 (2)
- natu2000
- ベストアンサー率69% (83/119)
ソースの方は、Mozilla5.0を入れてないので何ともですが、 IE6.0はOK、Mozilla5.0はalertさえ行けないということは f_submit()の呼び出しをしていない可能性もしくは、 呼び出しするやり方がMozilla5.0においてはNGの方法とか Mozillaにおいて何か設定でJavaScriptが無効になっているのか? とか思うんですが、そのへんどうでしょ? ----------------------------------- <script language="JavaScript"> <!-- function f_submit(act_Name){ (以下略) ----------------------------------- というのを ----------------------------------- <script language="JavaScript"> <!-- function msg(act_Name) { alert("テスト"); } function f_submit(act_Name){ (以下略) ----------------------------------- といった感じで 3行を追加して HTMLの方で <a href="javascript: msg() ;">テスト</a> とするとどうなるか、やってみてください。
お礼
natu2000様 返事が大変遅くなり申し訳ございません。 私自身、JavaScript内でlogを出して色々試してみましたら、 IE6.0では、forms(0)と記入してもOKだったのが Mozilla5.0では、forms[0]と記入しないと動いてくれないというのがわかりました。本当にどうもありがとうございました。
- natu2000
- ベストアンサー率69% (83/119)
Mozilla5.0とIE6.0についての違いは多岐にわたりそうなのですが、 とりあえず http://mikeneko.creator.club.ne.jp/~lab/web/documents/101thingsmozilla.html まぁこういうのが参考になるかも JavaScriptについてですが、 JavaScriptの記述に具体的にどういう命令関数などを使われているかは判りませんが、 やはりそのへんの解釈の違いかサポートかで Mozilla5.0とIE6.0の違いがでているように思います。 挙動が違うというJavaScriptの内容をここに書き出せば これはMozillaではサポートしていない。違う命令を使うといいよ。等 得られるかもしれません。 Mozilla系エンジンを採用しているのはネットスケープ(NN)などもあるようですが IEとNNも比べると、同じJavaScriptについても動く動かないなどあります。 やはりこういう事情もあることを踏まえるとMozilla5.0とIE6.0の違いを勉強したり 頭にいれることよりもMozilla系とIE系で共通に使えるJavaScriptについて 調べた方がいいように感じます
お礼
教示して頂きどうもありがとうございます。 Mozilla系とIE系で共通に使えるJavaScriptについて調べようと思いまして色んなサイトを見てたのですが、なかなかピンポイントなページが見つかったので、教えていただいてもよろしいでしょうか。 JavaScriptの記述は下記のように書きました。 ソース16行目にalert("テスト"); と記述してます。IE6.0ではalertが出るのですがMozilla5.0ではalertさえ出ません。 もしよろしければ、どこが違うのか教えていただけないでしょうか。 <script language="JavaScript"> <!-- function f_submit(act_Name){ var oForm = document.forms[0]; var oRadio = oForm.radio1; var oSel = objForm["index"]; if(oRadio == null){ return false; } if(!f_set(oRadio,oSel){ alert("選択しよう"); return false; } document.forms(0).action.value = act_Name; document.forms(0).submit(); alert("テスト"); } function f_set(oRadio, set){ var len = oRadio.length; if(len != null && len > 0){ var cnt=-1 for(cnt=0; cnt<len; cnt++){ if(oRadio[cnt].checked){ break; } } if(0 <= cnt && cnt < len ){ setObj.value = objRadio[cnt].value; return true; } }else { if(Radio.checked){ set.value = Radio.value; return true; } } return false; } // --> </script>
お礼
へんじが遅くなりどうも申し訳ございません。 BLUEPIXYさんの言う通り、 document.forms[0].submit(); にしたらOKでした。 本当にありがとうございます。