ブラウザとバージョンによって、使用を制限したいのですが、ブラウザが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;
}
}
}
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
私が良くやる方法です。
Onload時にブラウザ判定スクリプトを走らせてると思いますが、
そのスクリプトでブラウザ判定条件によってそれぞれ違うページに
飛ばしてしまう。
ネスケがきたら、エラーのページに飛び、IEが来たら正規のページに飛ぶ。
そんな感じで対応するのはいかがですか?
No.2
- 回答日時:
フォームを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
- 回答日時:
antigenさんへ。
「エラーページに飛ぶ」っていうたとえがいけませんでしたね。
私の場合IE、ネスケどっちにも正しく表示させたいので
こういうやり方をしていまいした。
う~ん。確かに利用者の立場からすると勝手に切り替えること
望ましくありませんね。
勉強になりました。御指摘ありがとうございます。
>onloadイベントはいつ来るかわからない
すみません。この事がいまいち理解できませんでした。
onloadイベントハンドラを使用したformなどが読み終えたあと
に動くのでは??と思っていたのですが、、、
ayako328さんへ。
この場で別の方に返事をしてしまいまして。すみませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SafariのIframeで高さが取得で...
-
クリッカブルマップのリンク部...
-
javascriptの基本的なことだと...
-
Null またはオブジェクトではあ...
-
DOM要素を削除しても、イベント...
-
Javascriptで定期的にF5を押す...
-
IE操作で別タブ表示のHTMLソー...
-
乗換案内 VBAで操作したい
-
TEXTAREA内の改行位置をinnerHT...
-
チャットフォームで文字色をラ...
-
このjavascriptのif文、条件式...
-
背景ランダム
-
選択によってsubmitボタンの色...
-
LaTeX:数式を等号揃えにする方法
-
functionから別のfunctionを実...
-
javascriptで自動計算フォーム...
-
日本語入力の禁止
-
URLの一部をコピーできるブック...
-
関数でy=g(x)のgとは何の略です...
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScript window.openで開く...
-
このjavascriptのif文、条件式...
-
FireFoxのjavascriptで自動でキ...
-
DOM要素を削除しても、イベント...
-
javascriptの基本的なことだと...
-
文字を一文字ずつ表示
-
showModalDialogで開いた画面を...
-
Null またはオブジェクトではあ...
-
Javascriptのhtml出力についてa...
-
codejump 模写コーディングgall...
-
LaTeX:数式を等号揃えにする方法
-
javascriptのdocument.allにつ...
-
excle VBA とweb上の検索を利用...
-
Latexに関する質問です。
-
乗換案内 VBAで操作したい
-
JavaScriptのdocument.all("変...
-
Javascriptで定期的にF5を押す...
-
選択によってsubmitボタンの色...
-
スマホでフォームにフォーカス...
-
compatModeとは?
おすすめ情報