2009-07-16 8 views
1

ブラウザのJavaScriptステータスを取得したいと考えています。 どうすれば入手できますか?どのようにブラウザのjavascriptステータスを取得できますか?

ページロード時に、ブラウザのJavaScriptが有効または無効になっていることを表示する必要があります。

私はPHPを使用しています。

ありがとうございました......

+0

実際に私がしたいですphp変数内のブラウザのjavascriptステータスを取得します。 だから私はそれに基づいて別のものをロードすることができます... – Avinash

答えて

8

javascriptが無効なブラウザのメッセージをタグに追加します。

例:JavaScriptはその後、有効になっていないのであれば、上記のメッセージが表示されます

<noscript> 
<p> Javascript is not enabled. Please enable it. <p> 
</noscript> 

0

bodyタグでは、javascript関数onloadを呼び出します。この関数は、JSがこのブラウザで有効になっているjavascript変数を設定します。デフォルトでは、JSが無効であると仮定します。

JavaScriptが有効になっている場合にのみJavascriptが呼び出されます。それ以外の場合は何も起こりません。この関数では、document.writeを使用して必要なものを表示できます。

1

あなたは、ブラウザのJSを実行する場合、サーバー側で検出する場合 - サーバに戻っ結果とAjaxのPOSTリクエストを送信し、ブラウザでいくつかのテストスクリプトを実行し、代わりJavaScriptをクッキー

を設定している

結果を予想と比較します。

+0

あなたがサーバー側で知っている必要がある場合は、おそらくあなたの最も安全な賭けです。 – Prestaul

+0

ブラウザでJavaScriptが無効になっている場合。あなたはajax投稿要求をすることはできません。 –

+0

@ Zain_Shaikh、リクエストがないと、ほとんどの場合、あるいはjavascriptによって修正されるようにプログラムできるクッキー(つまり、ajaxリクエストがないか、またはクッキーに期待された結果が存在しない)訪問者を操作するクッキーメソッドは、もう1つのリクエストを手動で行う必要があります。 – Evgeny

0

私が考えることができるもっとも独創的な方法は、HTML出力にJavaScript関数呼び出し、たとえばpostbackDoesExecute()を使用してPHPスクリプトにAJAX要求を行い、jsCallback.phpと呼ぶことです。 jsCallback.phpがAJAXリクエストから呼び出されると、Javascript = trueなどでユーザーのセッション(またはそれを実装する方法に応じてデータベースエントリ)が更新されます。このエントリが記録されていない場合は、要求がタイムアウトしたか、postbackDoesExecute()へのJavaScript呼び出しが発生していないことがわかります。つまり、JavaScriptが有効になっていません。

だけの思考...

1

は若干行き過ぎかもしれないが、このスクリプトは機能jsTestを実行しようとします。実行すると、divのテキストがJavaScript有効に設定されます。実行しないと、JavaScriptが無効になっているというテキストが残ります。

<html> 
<head> 
<script type="text/javascript"> 
function jsTest() 
{ 
    var jsStatusDiv = document.getElementById("jsStatus"); 
    jsStatusDiv.innerHTML = "JavaScript Enabled"; 
} 
</script> 
</head> 
<body onload="jsTest();"> 
<div id="jsStatus">JavaScript Disabled</div> 
</body> 
</html> 
0

JavaScriptが利用できるかどうかによって2つの異なる状態を表示する必要がある場合は、途中のページを作成するような何かを試みることができます。

このページでは、別のページに1ページと、他の人にJavascriptを持つ人々をリダイレクトします

<meta http-equiv="refresh" content="5;URL=mysite.php?js=0"> 
<script type="text/javascript"> 
    window.location.replace("mysite.php?js=1"); 
</script> 

このようなものが含まれます。しかし、少しハッキーです。

ユーザーがログインページを経由する場合はまた、あなたのログインページに余分な隠しフィールドを持つことができます。

<input id="hasJs" type="hidden" name="hasJs" value=""> 

そして

<script type="text/javascript"> 
    document.getElementById('hasJs').value = '1'; 
</script> 

第H ソリン