• ベストアンサー

JavaScriptが使えるかどうか判断する?

こんばんは,よろしくお願いします。 よく,JavaScriptの解説書などに,「avaScriptが使えるかどうか判断する方法」などと書いてあって,次のようなコードが載っていますよね。 if(navigator.javaEnabled() == false){ alert("JavaScriptを有効にしてください。"); history.back(); } でも,ここで疑問です。そもそも,JavaScriptが使えないのならば, このif文そのものが走らないのではないでしょうか? このコードは,どこにどのように記述すれば有効になるものなのでしょうか? よろしくおねがいします。

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

  • ベストアンサー
  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.3

このサイトが参考になります。 http://www.drk7.jp/MT/archives/001349.html

参考URL:
http://www.drk7.jp/MT/archives/001349.html
emikouji
質問者

お礼

OKwebbさん,ありがとうございます。 なるほど,エラーページに遷移して,そこでJavaScriptが有効な場合にのみ正常なページに遷移して,エラーページを表示しないようにするのですね。何とかできそうです。頑張ってみます。ありがとうございました。

その他の回答 (2)

  • KI401
  • ベストアンサー率53% (44/82)
回答No.2

・noscript要素を用いる または ・「このページを見るためにはJavaScriptを云々」という風に最初(HTMLで)表示しておいて、  JavaScriptでそのノードを削除する。(つまりJavaScriptが有効なら文言は見れなくなる)

emikouji
質問者

お礼

KI401さん,ありがとうございます。 これから,いろいろと試してみたいと思います。 「ノード」とかいろいろと専門的なことも,頑張って勉強してみたいと思います。

noname#108740
noname#108740
回答No.1

navigator.javaEnabledはJavaScriptが使えるかどうかではなくJavaアプレットが使えるかどうかを調べるためのものです。 JavaScriptとJavaは名前はにていますがまったくの別物です。

emikouji
質問者

補足

vibclorさん,早速のお答えありがとうございます。 なるほど,そういうことなのですね。 では,javaScriptが有効かどうか調べて,メッセージを表示したり,元のページに戻ったりさせたいときはどのようにすれば良いのでしょうか? 私が,最近見たページでは,MacBook Proのページのビデオ再生をしようとしたときに,「このページを見るためにはJavaScriptを有効にする必要があります。」とメッセージが出たのを見ました。このような機能を組み込むにはどのようにすればよいのでしょうか?

関連するQ&A

  • javascript 演算子の「!」_2

    以前 http://okwave.jp/qa/q8280538.html で同じ質問をして、一度は解決かと思ったのですが、考え直すとまた混乱してきたので、 もう一度質問させてください。 以前と同じく http://www.artemis.ac/contents/javascript/javascript10.htm のスロットに関してです。 STEP 2 画像をまわす > ◆SCRIPTタグ内 にある、 if(!$DR[1] && !$DR[2] && !$DR[3]){ についてです。 お聞きしたいのはこのif文の条件式についてです。 このif文はスロットを回したときに実行されるわけですが、 実行される前に $DR[1] = $DR[2] = $DR[3] = false; というコードが実行されています。 お聞きしたいのは、if文の条件はこのコードの影響を受けるのかどうかです。 仮に受けるとした場合、falseを!で否定するので、結果trueとなり、 ドラムが止まっているときという状態と矛盾するので受けないとは思うのですが・・。 よろしくお願いします。

  • javascriptに詳しい方

    下のスクリプトで見るべきページが二つ以上ある場合どのように記述すればいいのでしょうか? javascriptに詳しい方よろしくお願いいたします。 <html> <head> <script language="JavaScript"> <!-- var isClicked = false; //--> </script> </head> <body> <A href="check.html" onClick="isClicked = true">見るべきページ</a><br> <A href="test.html" onClick="if (!isClicked){ alert('先に見るべきページをクリックしてください'); return false; }">A</a><br> </body> </html>

  • Javascriptでブラウザ振り分け。

    Javascriptでブラウザ振り分け。 Javascriptでブラウザの振り分けを行いたいと思います。 振り分けをする対象は 『IE7以前 <--> IE8以降』 サイトを徘徊して色々見て周ったのですが 一番簡単な方法として if(navigator.appVersion.indexOf("MSIE 5",0) != -1) alert("IE5ですね") の記述を見つけました。 が、上記のスクリプトはIE5のみを判定するスクリプトで IE7以下、IE8 の振り分けではなく困っています。 引数として文字列が返ってくるのであれば演算子を 『>』等では難しそうですし・・・。 良い方法はありませんでしょうか? よろしくお願い致します。

  • javascriptで画面を閉じる

    javascriptの画面を確認ダイアログでOKの時、閉じる処理の実装をどのようにするか考えています function back(){ if( confirm("入力内容は保存されませんがよろしいですか?")){ alert("OKが押されました"); window.close(); } else{ alert("キャンセルが押されました"); } } <div id="button"> <input type="button" name = "back" onClick="back()" value="戻る" /> </div> こんな感じに書いているのですが、[window.close();]が実行されません alertの部分はOKもキャンセルも呼ばれるのですが閉じる処理が呼ばれません 調べてwindow.close()で画面を閉じることができるというのは見つけたのですがそもそも使い方が 間違っているような気がします。 どの点が間違っているか、解決方法をお願いします。

  • 外部javascriptの読み込み方

    下記ソースのjavascriptにて外部javascript内容を読み込もうとしています ==呼び出すファイル(test.htm)========================== <head> <script type="text/javascript" src="common.js"> <!-- function init() { setBrowser(); alert(getBrowser()); } --> </script> </head> <body onload="init();"> てすと </body> </html> ================================================== ==呼び出されるファイル(common.js)=================== <!-- var strBrowser; function setBrowser() { if(navigator.userAgent.indexOf("MSIE") != -1){ // IE strBrowser = "IE"; } else if(navigator.userAgent.indexOf("Firefox") != -1){ // FireFox strBrowser = "Firefox"; } else if(navigator.userAgent.indexOf("Safari") != -1){ // Chrome & Safari strBrowser = "Safari"; } else{ strBrowser = ""; } } function getBrowser() { return strBrowser; } //--> ================================================= これで呼び出す事ができません。 何処が悪いのか、ご指摘頂ければ幸いです。

  • javascript 初心者です

    javascript 初心者です 設定したグローバル変数を引数に指定したいのですが、うまくいきません。 下記のスクリプトのように書いてみたのですが、○が返ってきてしまいます。 どうすればうまくいくでしょうか?よろしくお願いします。 <html> <head> <script type="text/javascript"> <!-- i = false; function myFunc(hensu){ if(hensu){ alert("○"); } else{ alert("×"); } } --> </script> </head> <body> <p onclick="myFunc('i')">[btn]</p> </body> </html>

  • PHPの変数をJavaScriptに渡したい

    PHPの中にJavaScritの確認ダイアログを表示しています。 PHPの変数をJavaScript内でも使いたいのですが、どのようにすればよいのでしょうか? <?php $number=$_POST["number"]; if(isset($_POST["delete"])) { //選択したデータの削除 //削除の確認 print("<script language='JavaScript'>"); print("res=confirm('削除してもよいですか');"); print("if(res==false) location.href='delete.php?number=$number';"); print("</script>"); ?> また、<?php  ?>内でJavaScriptを使っているのでprint文でJavaScript文を書いていますが、あまりスマートではありません。 これ以外の記述方法はあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストボックスに「00000」を入力すると「0」になってしまう

    あるテキストボックスには5桁の半角数字を入力させるようにしたいと思っています。 このテキストボックスには以下の入力チェックをかけていますが、「00000」を入力すると「0」と判断されてしまい。一つ目のチェックに引っかかってしまいます。 これを文字列として判断する方法はありますか? または、以下のチェックに引っかからない方法はありますか? よろしくお願いいたします。 (codeにはvalueが入っています。) if(code == 0){ alert("入力してください。"); return false; } if(isFinite(code) == false){ alert("半角数字を入力してください。"); return false; } if(code.length != 5){ alert("5桁入力してください。"); return false; }

  • IE6 + javascript

    すみません、先ほども質問したのですが、締め切ってしまったのでもう一度質問させてください。 下記コードが、Firefoxでは動作するのですが、IEではjavasciptの部分が動作していません。 もちろん、javascriptの設定は有効にしてあります。 var browser = navigator.appName; if(browser.charAt(0) == "N") { window.addEventListener("load",change_page(page_id),false); } else if (browser.charAt(0) == "M") { window.attachEvent("onLoad",change_page(page_id)); } .... function httpRequest() { if (window.ActiveXObject) { try { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { httpObj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { httpObj = false; } } } else if (window.XMLHttpRequest){ try{ httpObj = new XMLHttpRequest(); } catch(e) { httpObj = false; } } return httpObj; } change_page()はfunctionです。 なぜIE6ではjavascriptが動かないのでしょう? ソースのどこが悪いのかわからず、どなたかアドバイスあればお願いします!

  • JavaScriptでIE6を検知し、転送する。

    IE6からアクセスされた場合、 ・アラートを表示してアップグレードを促す。 ・同時にアップグレード用のウェブページに転送する。 という処理をJavaScriptで行いたいと思いました。 ブラウザ判別は、↓こちらのサイトを参考にしました。 http://winofsql.jp/VA003334/infoboard.php?mid=sjscript&id=070828100942&pid=3 そして、以下のコードをhead内に記入しています。 ============================== <script type="text/javascript"> var userAgent = window.navigator.userAgent.toLowerCase(); var appVersion = window.navigator.appVersion.toLowerCase(); if (userAgent.indexOf("msie") > -1) { if (appVersion.indexOf("msie 6.0") > -1) { window.alert("InternetExproler Ver.6 をご利用の方は、新しいバージョンへアップグレードして下さい。"); window.location.href = "http://www.xxxxxxxxxx.com"; } } </script> ============================== IEtesterで試すと、一応Ver.6の際に、狙った動作はしています。 しかし、何故かIEtester上で「ScriptError」が表示されます。 JavaScriptは、だいぶ不安があるので、この「ScriptError」が気になって仕方ありません。 やはりどこか悪いところがあるのでしょうか。。 どなたかご意見を聞かせて下さい。 また、headの中に長々と書くのも好きではないので、上の内容を丸ごとコピーして、「ie6.js」というファイル名をつけ、jsディレクトリに入れ、下のようにしました。 <script type="text/javascript" src="js/ie6.js"></script> こうすると何故かアラートの文字が文字化けしてしまいます。 (head内に書いてる時はしない。) 何故なのでしょうか。 よろしくお願い致します。

専門家に質問してみよう