ブラウザ内で Javascript がオフになっているかどうかを確認するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/45097

  •  09-06-2019
  •  | 
  •  

質問

ブラウザ ユーザーが JavaScript をオフにしているかどうかを JavaScript コード スニペットを使用して検証することはできないと思います。では、代わりに何を使えばよいでしょうか?誰かがコードサンプルを提供してもらえますか?

if/then ステートメントをラップしようとしています。

私はよく CFML でコーディングします。

役に立ちましたか?

解決 4

次のようなことについて話しているのでしょうか。

JavaScript:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

他のヒント

これは完全なハックですが、noscript タグ内で iframe を使用して URL で HTTP GET をトリガーし、ユーザーが JavaScript を有効にしていないことをサーバーに伝えることができます。

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

<noscript> HTML タグを使用します。

何をしようとしているのかわかりませんが、JavaScript が必要であることをユーザーに通知する必要があるだけの場合は、「<noscript>」タグを使用するだけで済みます。サーバー上での情報が必要な場合は、JavaScript からサーバーに対して Ajax スタイルのリクエストを行うことができます。リクエストを取得した場合は JavaScript が動作していますが、そうでない場合は動作しません。

彼は JavaScript が有効になっているかどうかを確認するよう求めています。OPが言ったことを正確に行うことしか思いつきません-JSがアクティブ化されている場合にコールバックを送信する間隔でJavaScriptを使用してみてください-残念ながら、JSが有効になっているかどうかをサーバー側で確認できないと思います。そのため、タグを使用するのではなくサーバーから異なるコンテンツをレンダリングするよりも。

使用する場合 目立たないJavaScript その場合、ユーザーが JavaScript を有効にしているかどうかを確認する必要はありません。

JavaScript が有効になっている場合は、最大限の効果が得られますが、有効になっていない場合でも、ユーザーはサイトを使用できます。このアプローチはアクセシビリティに優れているだけでなく、SEO も向上する可能性があります。

<noscript>
    ...some non-js code
</noscript>

はい、NoScript スニペットは正しいです。

JavaScript で AJAX クエリを実行し、実行されているかどうかを確認することができます。ページをダウンロードしてもクエリを実行しない人は、JS が無効になっているか、ロボットであるかのどちらかです。

実際にできることは、タグにメッセージを入れることだけです。どこかの ASP.NET でこれを試したことを覚えているようですが、実際にわかるのはブラウザが Javascript をサポートしているかどうかだけであり、Javascript が実際に許可されているかどうかはわかりません。

CFML についてはあまり詳しくありませんが、.NET にはブラウザの機能を検出する機能があります。ただし、ブラウザが次の状態にあるかどうかを検出する機能はありません。 有能 JavaScriptのが、それは変わったのか オフ. 。それで、あなたもそこで立ち往生しています。

私の知る限り、HTML の noscript タグ以外にできることはあまりありません。JavaScript をプログレッシブに記述することで (プログレッシブ拡張を参照)、JavaScript:off をチェックする必要がなくなります。

JSは分かりませんが、ページ内のリンクをJSで変更することは可能でしょうか?誰かが変更されていないリンクにアクセスした場合、その人は JS を使用していませんが、アクセスした場合は JS を使用していることになります。これには意味がありますか?

往復せずにそれを行う方法を考え出したことがないので、それはあなたの目標が何であるかによって異なります。

続行するために JavaScript が必要な場合は、(.net で) サーバー側でログイン ボタンを無効にしてから、クライアント側で JavaScript を有効にして、noscript タグを使用してエラー メッセージを表示するなどの作業を行いました。

どちらの方法でも機能する必要がある場合は、プログレッシブ拡張を使用するか、js を使用して隠しフィールドを設定してからセッション変数を設定することができますが、これは、2 番目のリクエストに到達するまでは分からないことを意味します。

あなたは書くことができます

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

または、サーバー側で js を確認したい場合は、js 経由で cookie を書き込み、サーバーでそれを読み取ります。

サーバー側でそれを確認する方法を探している場合は、Cookie を配置する JS をユーザーに送信できます。リクエストに Cookie が存在すれば、スクリプトが機能したかどうかがわかります。

これを行う信頼できる方法の 1 つは、JavaScript の $.post を使用してサーバーにメモを送信することです。(これに誤りがある場合は申し訳ありませんが、頭の中で書いたものなので、後でテストに取り掛かったときに更新されます)。JavaScript を使用している場合、セッション データから取得することもできるようにビルドできるようにする必要があります。これにより、 に頼ることなく JavaScript の代替を提供できるようになります。

ページ上のスクリプト:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

そして、ターゲットの .php で...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top