5

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

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

役立つ場合は、CFML でコーディングすることがよくあります。

4

16 に答える 16

6

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

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>
于 2008-09-05T02:58:16.397 に答える
5

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

于 2008-09-05T02:06:20.530 に答える
5

何をしようとしているのかわかりませんが、Javascript が必要であることをユーザーに通知する必要がある場合は、'<noscript>' タグを使用できます。サーバーについて知る必要がある場合は、javascript からサーバーに Ajax スタイルのリクエストを行うことができます。リクエストを取得した場合、javascript は機能しています。それ以外の場合は機能しません。

于 2008-09-05T02:10:40.643 に答える
4

私たちはこのようなことについて話しているのですか:

JavaScript:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>
于 2008-09-05T02:22:35.343 に答える
2

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

于 2008-09-05T02:09:06.747 に答える
2

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

JavaScript が有効になっている場合は完全な効果が得られますが、そうでない場合でもユーザーはサイトを使用できます。アクセシビリティが向上するだけでなく、このアプローチは SEO を向上させることに気付くかもしれません。

于 2008-09-05T08:19:48.510 に答える
1
<noscript>
    ...some non-js code
</noscript>
于 2008-09-05T02:06:37.223 に答える
1

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

于 2008-09-05T06:55:06.920 に答える
0

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

于 2008-09-05T02:06:53.710 に答える
0

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

于 2008-09-05T02:10:20.613 に答える
0

これを行う信頼できる方法の 1 つは、javascript の $.post を使用してサーバーにメモを送信することです。(これにエラーがある場合はお詫びします。私の頭の上に書いてありますが、後でテストに取り掛かるときに更新されます)。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;
}
?>
于 2015-02-23T17:05:49.810 に答える
0

CFML についてはよくわかりませんが、.NET にはブラウザーの機能を検出する機能があります。ただし、ブラウザがJavaScript に対応しているかどうかを検出する機能はありませんが、無効になっています。だから、あなたもそこに立ち往生しています。

HTML の noscript タグ以外に、Javascript:off をチェックする必要がないように、JavaScript をプログレッシブに記述する (プログレッシブ エンハンスメントを参照) 以外に、できることはあまりありません。

于 2008-09-05T02:10:29.117 に答える
0

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

于 2008-09-05T02:10:58.460 に答える
0

往復なしでそれを行う方法を考え出したことがないので、それはあなたの目標が何であるかに依存します.

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

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

于 2008-09-05T02:56:57.973 に答える
0

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

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

または、js を介して cookie を作成し、サーバー側で js を確認する場合は、それをサーバーで読み取ります。

于 2008-09-05T08:39:29.087 に答える
0

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

于 2014-06-02T14:47:42.643 に答える