ユーザーが JavaScript を有効にしているかどうかを確認したいのですが、HTML で no script タグを使用したくありません。ユーザーに JavaScript と no script タグの両方の余分なスクリプトをダウンロードさせたくないからです。
誰でもアイデアを得ましたか?
よろしくお願いします、ディン・ブラチャ
ユーザーが JavaScript を有効にしているかどうかを確認したいのですが、HTML で no script タグを使用したくありません。ユーザーに JavaScript と no script タグの両方の余分なスクリプトをダウンロードさせたくないからです。
誰でもアイデアを得ましたか?
よろしくお願いします、ディン・ブラチャ
残念ながら、これはあなたができることではありません。PHPコードは通常、ブラウザがコードをレンダリングする前に完全に実行されます。
ブラウザでのJavascriptの無効化は、最初のヘッダーリクエストでPHPに報告されません。最も近い方法は、Javascriptを使用してPHPへのAJAX呼び出しを行い、Javascriptの存在を検出することです。コールバックが失敗した場合は、無効になっていると見なすことができます。
AJAX を使用して、JS アクティベーションのフラグとして使用される Cookie を設定できる php ページをリクエストできます。js スクリプトでは、Cookie が設定されているかどうかを確認できます。これは、ユーザーが JS を有効にしていることを意味します。
test.php
<script>
//// query string
if(/[?&]js=1/g.test(window.location.href) == false)
window.location.href += (window.location.href.indexOf("?") == -1 ? "?" : "&") + "js=1";
//// OR session cookie
if(document.cookie.search(/(^|;)js=1/) == -1) {
document.cookie = "js=1; path=/";
document.location.reload();
}
</script>
<?php
$_GET["js"];
////
$_COOKIE["js"];
?>
これを行う方法はたくさんあります。JavaScriptを使用してクライアント側でCookieを設定してからページをリロードするか、上記を実行してURLにクエリ文字列を追加します。PHPは、Cookieまたはクエリ文字列をチェックし、このユーザーがJSを有効にしていることを示すセッション変数を設定できます。