- 締切済み
document.write が作動してくれません!
/* ブラウザが 「IE Version 5 以上」 または 「Netscape Navigator Version 4 以上」 のときに文字列を出力するつもりで、以下のscriptを書きましたが、IE Version 6 のパソコンで文字列が出力されません。 (エラーにはなりません。インターネット・セキュリティは既定レベルの「中」です。) 何が間違いなのかお教えくださいませ。 <script type="text/javascript"> <!-- if ( ( (navigator.appName.indexOf("Microsoft") >=0)&&(navigator.appVersion.charAt(0) >4) ) || ( (navigator.appName.indexOf("Netscape") >=0)&&(navigator.appVersion.charAt(0) >3) ) ) { document.open(); document.write("「パソコン申し込み」 では、入力していただいた貴下の個人情報を送信する際に、情報の暗号化をおこないます。"); document.close(); } //--> </script> */
- みんなの回答 (1)
- 専門家の回答
みんなの回答
if (... &&(navigator.appVersion.charAt(0) >4) ) || ...) ↓ if (... &&(navigator.appVersion.charAt(0) >=4) ) || ...) これはMSIEについての一種有名なことですが、このブラウザでは navigator.appVersion プロパティ値が狂っています。信頼に足る バージョン判定をするには、真偽値変数を使用することをお勧め します。
お礼
/* 悪戦苦闘の末、scriptのはじめの部分を下記のように修正してOKになりました。 indxM = navigator.appVersion.indexOf("MSIE",0); if ( (navigator.appVersion.charAt(indxM+5) >4) ||… これにて一件落着。ありがとうございました。 */
補足
さっそく貴重なご回答ありがとうございます。 そーゆーことだったとは、JavaScript経験3ヶ月の愚輩は知らぬが仏さまキリストさまでございます。 なるほど愚輩のPCのappVersionは、 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1) となっておりまして、0位置の文字は、なななんと6ではなくて4なんざんすね。 MSIEの次の文字を取得して、それをVersionにするように工夫してみようと思います。