-PR-
締切済み

ブラウザ情報の件で困ってます・・・。

  • すぐに回答を!
  • 質問No.36653
  • 閲覧数61
  • ありがとう数9
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 0% (0/4)

ブラウザとバージョンによって、使用を制限したいのですが、ブラウザがNetscapeだと .disabled が使用できないみたいなのですが。
今ブラウザ情報の取得も以下のとおりかなり間に合わせ的なもので、もっといいやり方を教えていただけるとうれしいのですが、ちょっと急いでおりますのでご返答のほうよろしくお願い致します。
<!-- ブラウザ情報
document.write('<center><TABLE border="1" align="center">');
document.write("<TD></TD>あなたのブラウザ情報です</TR>");
document.write("<TR><TD>ブラウザ名は</TD><TD>"+navigator.appName+"</TD></TR>");
document.write("<TR><TD>バージョンは</TD><TD>"+navigator.appVersion+"</TD></TR>");
document.write("</TABLE>");
// ブラウザ情報 -->
function GetVer(nvName, nvVer){
var Name;
Name = new String(nvName);
if(eval(Name) != "Microsoft Internet Explorer"){
mainForm.KAI_ACCT.disabled = true;
mainForm.KAI_PASS.disabled = true;
alert("このブラウザには対応していません。IE 5.0以上で使用してください。");
return false;
}else{
var Version;
Version = new String(nvVer);
eval(Version.charAt(22));
if( eval(Version.charAt(22)) < 5 ){
mainForm.KAI_ACCT.disabled = true;
mainForm.KAI_PASS.disabled = true;
alert("このブラウザには対応していません。IE 5.0以上で使用してください。");
return false;
}else{
return true;
}
}
}
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル5

ベストアンサー率 0% (0/0)

こんにちは。 私が良くやる方法です。 Onload時にブラウザ判定スクリプトを走らせてると思いますが、 そのスクリプトでブラウザ判定条件によってそれぞれ違うページに 飛ばしてしまう。 ネスケがきたら、エラーのページに飛び、IEが来たら正規のページに飛ぶ。 そんな感じで対応するのはいかがですか?
こんにちは。
私が良くやる方法です。
Onload時にブラウザ判定スクリプトを走らせてると思いますが、
そのスクリプトでブラウザ判定条件によってそれぞれ違うページに
飛ばしてしまう。
ネスケがきたら、エラーのページに飛び、IEが来たら正規のページに飛ぶ。
そんな感じで対応するのはいかがですか?
関連するQ&A


  • 回答No.2
レベル3

ベストアンサー率 0% (0/1)

フォームをJavaScriptで書き出すことにして出力前にブラウザをチェックしてみてはどうでしょう。 var enale = IsIE5After() ? '' : ' disabled'; var str = '<form name="mainForm"><input name="KAI_ACC ...続きを読む
フォームをJavaScriptで書き出すことにして出力前にブラウザをチェックしてみてはどうでしょう。

var enale = IsIE5After() ? '' : ' disabled';

var str = '<form name="mainForm"><input name="KAI_ACCT"' + enable + '>' + ...;
document.write(str);

function IsIE5After()
{
 if (!window.navigator || !navigator.appName ||
   navigator.appName != 'Microsoft Internet Explorer') {
  return false;
 }

 var index = navigator.appVersion.indexOf('MSIE ');
 if (index == -1) {
  return false;
 }

 var separator = navigator.appVersion.indexOf(';', index += 5);
 if (separator == -1) {
  return false;
 }

 var version = parseFloat(navigator.appVersion.substring(index, separator));

 return version >= 5.0;
}

ブラウザのチェックはInternet Explorerのコンパチブルブラウザもありえるので、簡単に「document.all」でもいいのかもしれませんね。

var enale = IsIE5After() ? '' : ' disabled';

    ↓

var enable = document.all ? '' : ' disabled';

ただし、どちらにしてもこの方法ではJavaScriptが動作できないとフォームを表示できないことになります。理想はやはりCGIを使うことでしょうか。

それから、正しいかどうかはわかりませんが、経験的にNetscapeでは「mainForm」でフォームを参照することは出来ません。「document.mainForm」としたほうが良いでしょうね。

ついでですが、「document.write(...); document.write(...)」と繰り返すのはパフォーマンスの低下を招きますから、文字列をまとめて書き出すほうが良いでしょう。


makosさんへ

onloadイベントはいつ来るかわからないので、軽いページでなければお勧めできません。それから、Netscapeに対応するしないというのはサイトの意向ですから結構ですが、ブラウザによってエラーページに飛ぶと言うのはいかがなものでしょう。ただ「正常に見られない」ことを伝えればそれで良いのではないでしょうか。なぜなら、訪れた先でピョンピョンとページが切り替わるのを閲覧者はあまり好まないからです。
  • 回答No.3
レベル5

ベストアンサー率 0% (0/0)

antigenさんへ。 「エラーページに飛ぶ」っていうたとえがいけませんでしたね。 私の場合IE、ネスケどっちにも正しく表示させたいので こういうやり方をしていまいした。 う~ん。確かに利用者の立場からすると勝手に切り替えること 望ましくありませんね。 勉強になりました。御指摘ありがとうございます。 >onloadイベントはいつ来るかわからない すみません。この事がいまいち理解で ...続きを読む
antigenさんへ。
「エラーページに飛ぶ」っていうたとえがいけませんでしたね。
私の場合IE、ネスケどっちにも正しく表示させたいので
こういうやり方をしていまいした。
う~ん。確かに利用者の立場からすると勝手に切り替えること
望ましくありませんね。
勉強になりました。御指摘ありがとうございます。

>onloadイベントはいつ来るかわからない
すみません。この事がいまいち理解できませんでした。
onloadイベントハンドラを使用したformなどが読み終えたあと
に動くのでは??と思っていたのですが、、、

ayako328さんへ。
この場で別の方に返事をしてしまいまして。すみませんでした。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ