• ベストアンサー

JavaScriptによる(連続)自動判定

index.htmlを表示する際に、以下のような条件分岐を行いたいです。JavaScript以外のプログラミング言語でも構いません。 条件1.Javascriptがオンであるか否かを自動で判定する。 結果1.オン:条件2に進む 結果1.オフ:警告表示をする。または、index.html以外の警告HTMLページを表示する。index.htmlは表示しない。 条件2.ブラウザがインターネットエクスプローラであるか否かを自動で判定する。 結果2.正:index.htmlを表示する。 結果2.否:警告表示をする。または、index.html以外の警告HTMLページを表示する。index.htmlは表示しない。 尚、私はJavaScriptに関して全く無知な状態です。HTML、CSSは一通り勉強済みです。その点を踏まえてご回答いただければ幸いです。 お手数ですが、ご回答いただきますよう宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Splatter
  • ベストアンサー率41% (181/440)
回答No.2

Javascriptが利用不可能である場合、そもそもJavascriptが 実行されませんから、代替となる表示を行うことになります。 --------------------------------------------- <script type="text/javascript"> <!-- alert("いらっしゃいませ。"); --> </script> <noscript> 当サイトの閲覧にはJavascript対応ブラウザが必要です。 </noscript> --------------------------------------------- 上記コードのように、<noscript>タグを使用することで、 <script>タグを実行できない環境で表示する部分を 仕込むことができます。 また、Javascriptに対応していない環境で<script>タグの 中身が表示されてしまうのを防ぐためにコメントで囲います。 (Javascript自体はコメントの有無に関係なく動作します。) Javascript内では、以下のようなコードを記述することで ブラウザを判別することができます。ただしユーザエージェントは 簡単に偽装が可能なので、本当にIEかの保障はありませんが。 ---------------------------------------------------- if(navigator.userAgent.indexOf("MSIE") != -1) { // IEのときはこのコードを通る } else { // IE以外のときはこのコードを通る } ----------------------------------------------------- 以下のコードは別ページにジャンプする機能です。 IEの場合だけジャンプしたい、という場面で使えますね。 上記のユーザエージェントと組み合わせて、携帯電話なら 携帯用ページに転送する、といった使い方もできます。 ----------------------------------------------------- document.location = "http://oshiete1.goo.ne.jp/"; ----------------------------------------------------- 上記を組み合わせた一例を以下に示します。 ----------------------------------------------------- <script type="text/javascript"> <!-- if(navigator.userAgent.indexOf("MSIE") != -1) { // IEのときはこのコードを通る document.location = "http://oshiete1.goo.ne.jp/"; } else { // IE以外のときはこのコードを通る alert("当サイトはInternet Explorer専用です。"); document.location = "http://google.ne.jp/"; } --> </script> <noscript> 当サイトの閲覧にはJavascript対応ブラウザが必要です。 </noscript> ----------------------------------------------------- Javascript非対応の場合: →当サイトの閲覧にはJavascript対応ブラウザが必要です。 Javascript対応だがIEではない場合: →当サイトはInternet Explorer専用です。のメッセージ表示。 →OKボタンを押した後にgoogleへジャンプ。 Javascript対応かつIEの場合: →教えて!gooへジャンプ。 以上です。

bb2318bb
質問者

お礼

とても丁寧なご回答をいただき、感謝しております。 本当にありがとうございます。 組み合わせの一例を添えてくださったおかげて、JavaScriptの初心者である私でも自サイトに実装することができそうです。 また、実際に一例をいじることで、学習意欲が向上すると思います。 今後とも宜しくお願い致します。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

条件1 HTMLが提供しているわ。 <noscript>を使うの。 index.html以外にしたければ JavaScriptが利用可能な場合は <script>でindex.htmlに飛ばせばいいわ。 JavaScriptが利用できなければ <script>内のスクリプトが実行されないことを利用した手段ね。 条件2 index.htmlを表示しない方法を取る場合は サーバサイドのアプリケーションで判定するか 最初に表示するページをindex.html意外にして JavaScriptで飛ばすしかないわね。 index.htmlに警告表示するならJavaScriptでできるわよ。 判定式はインターネット上にサンプルが腐るほど転がっているから。 > 私はJavaScriptに関して全く無知な状態です 嫌よ。勉強しなさい。 自分で作ってみてそれでどうしてもわからなければ いくらでも助けてあげるわ。 でも最初から全部教えてはあげない。 私はあなたの先生じゃないんだから。

bb2318bb
質問者

お礼

ご回答いただき、有難うございます。 自分で考えることはとても大切なことですよね。 自学を基本姿勢として、今後もウェブアプリケーションの勉強を進めていきたいと思います。