• ベストアンサー

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
質問者

お礼

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

関連するQ&A

  • javascriptとcookieの判定とページ遷移

    javascriptを使ったサイト作りは全くの初心者なのですが、自分のHPで以下のようなことがしたいと思っています。 1.index.htmlでjavascriptとcookieの設定を判定 2.どちらも有効の場合はtop.html(サイトの内容)へ自動的に移動 3.2以外の場合はsetup.html(設定の仕方)へ自動的に移動 検索で探していて判定結果を表示するスクリプトはちらほら見かけたのですが、その結果を受けて2、3をさせる方法がわかりません。 ヒントになるページを教えていただくか、アドバイスをいただけないでしょうか。 どうかよろしくお願いします。

  • Javascriptを使ってTOPページを毎日自動で変更したいのですが

    Javascriptを使って毎日自動的にTOPページを変更したいと思っています。 具体的にはindex001.htm~index031.htmというように1か月分のTOPページを作成しておいて、毎日0時になると自動的に次のindex***.htmのページに切り替わるようにしたいのです。 (見ている人がいちいちページの更新をしなくても0時になればリアルタイムにページが切り替わることが必須条件です) いくつかjavascriptを試して見ましたが更新をすればページが切り替わるものはありましたがリアルタイムで毎日自動的に切り替わるものはありませんでした。 どなたかぜひ教えて頂けます様お願い致します。

  • JavaScriptのCookieでお気に入り

    こんにちは。まだまだCookieやJavascriptには未熟ですが、 「JavaScriptのクッキーで各ユーザの好むページをパソコンに記憶し、次からは「お気に入り」のページにいったらそのリンクが表示される」 ことなんてできますか? ------------------------------------------------------------- 説明図 index Lお気に入りに登録されたページを表示する(HTMLファイル)(あるユーザーが好むページを表示する) Lあるユーザーが好むページ(HTMLファイル)(※これを記憶) ------------------------------------------------------------- 検索したとしてもなかなか見つかりません。 だれか知っているでしょうか??

  • javascriptを使うとIEで警告文が出る?

    サイト製作でjavascriptを使用したトップページindex.htmlを作りました。 自分のIEでプレビュー表示してみると、IEの画面上部に 「セキュリティ保護のため、コンピュータにアクセスできるアクティブコンテンツは表示されないよう、IEで制限されています。オプションを表示するにはここをクリックしてください。」 と出ました。毎回アクセスするたびにこのような表示が出ると、サイト訪問者に迷惑だと思うし、一回でも表示されたら「怪しいサイトじゃないか?」と思われてしまいます。 しかし、いろいろなサイトのトップページのソースを見てみるとけっこうjavascriptを使っていますが、このような警告文は表示されません。初めて訪問したサイトでも表示されないようです。 もしかして、警告文が出るのは、私がローカルフォルダ内のindex.htmlを直接表示しているから警告文が出るのでしょうか? サーバーにアップロードしてサイトを見る分にはこのような警告文は出ないのでしょうか? ちなみにjavascriptは単に日付関連の計算・結果表示しか使用していません。

  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • Javascriptで表示のページをPHPで読む

    Javascriptを使って表示されているウェブのコンテンツをPHPで読み込む方法について教えてください。 HTMLで作られている場合は「file_get_contents」でHTMLソースを取得できますが、Javascriptを使って表示されたページのソースを読み込むにはどのようにしたらよいのでしょうか。 読み込みたいページは下記のような構造になっています。 <html> <head> </head> <body> <h2>タイトル</h2> //ここのコンテンツ部分がJavascriptをONにしないと見えない。 </body> </html>

    • ベストアンサー
    • PHP
  • Javascriptで生成されたページの情報取得方法

    Javascript初心者です。 ある画面で検索条件を指定して、送信ボタンを押下すると、検索結果をJavascriptで生成したページで表示するサイトがあります。結果はテーブルで表形式に表示されます。 この検索結果をJavascriptかVBscriptで取得したいと考えています。 HTML情報とテキスト情報両方とも取得できたらうれしいです。 document.all(1).innerHTML で取得しても、実際の画面に表示されているHTMLとは異なる情報しか取得できません。 生成後のHTML情報の取得方法をご教授ください。

  • JavaScript ランダムリンク+自動ジャンプ

    トップページを複数用意し、index.htmlにアクセスした際に ランダムでいずれかのトップページに自動ジャンプするギミックを JavaScriptで制作したいのですが、記述方法がわからず困っております。 お助けください。。。

  • FlashとJavaScriptの連携について。

    HTML内に設置したFlash(SWFファイル)のボタンを押すと、別ウインドウのHTMLページが開く方法について。 現在ホームページを制作していますが、FlashとHTML内のJavaScriptとの連携が上手く出来ないので質問します。 問題のスクリプト・タグを記載します。 -----以下、HTML(index.html)内に記述したJavaScript----- <script type="text/javascript"> function winopen(top.html,1024,768{window.open(top.html,"name","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0" , Width=" + 1024 + ",Height=" + 768); </script> -----ここまで----- -----以下、Flash(SWFファイル)のボタンに対して記述したActionScript----- on (release) { getURL("javascript:winopen("top.html",1024,768);", "_blank"); } -----ここまで----- この状態で、HTM内にobjectタグを用いて設置したFlash(SWFファイル)のボタンが上手く動作してくれません。 希望する動作としては「index.htmlに設置されたFlash(SWFファイル)のボタンを押す」→「別ウインドウ(1024×768のサイズ、各ツールバー等非表示、スクロールバーのみ許可)が立ち上がりtop.htmlが表示される」という流れです。 ※移動先のtop.htmlには、特にJavaScriptの記述はありません。また、top.htmlはHTML内にFlash(SWFファイル)を設置した見た目だけフルFlashのページになります。 ご不足の記述等があれば、すぐに補足追加させて頂きます。 ご回答、宜しくお願い致します。

    • ベストアンサー
    • Flash
  • Javascriptにてページ作成

    Javascriptを用いて、 1)以下を中央ぞろえ 2)太字・(HTMLでの)フォント6程度の「タイトル」 3)ページを開いた際の時間が30以下で「画像1」  30秒より後の場合は「画像2」を表示 4)3)の背景色を変更 5)最終更新日時を自動取得 といった条件を満たしたページを作成したいのです。 2)は検索して調べたところ、おおむね以下のような感じになると思います。 <script type="text/javascript"> <!-- dd = new Date(); mySeconds = dd.getSeconds(); myimg= '<img src="「画像1」" width= "x" height="y">'; myimg2= '<img src="「画像2」" width= "x" height="y">'; if(mySeconds<30){ document.write(myimg+"<br>"); }else{ document.write(myimg2+"<br>"); } document.write(dd.toLocaleString() +"<br>"); // --> </script> そして5)の日時自動取得は <script type="text/javascript"> <!-- document.write(document.lastModified); // --> </script> こんな感じになると思うのですが。 それ以外の条件を満たすJavascriptで、ぴんとくるものが見つかりません。 他の条件はHTMLで記述するべき(HTMLのほうが楽?)ことなのでしょうか? HTMLは基本的なことだけかじった程度の知識で、Javascroptというものに頭を悩ませています。 よろしくお願いします。

専門家に質問してみよう