簡體   English   中英

尋找一種方法來檢測 javascript 使用 PHP 禁用(不想在 html 中使用 noscript)

[英]looking for a way to detect javascript disabled using PHP (don't want to use noscript in html)

我想知道用戶是否啟用了 javascript,我不想在 HTML 中使用 no script 標簽,因為我不希望用戶下載 JavaScript 和 no script 標簽的額外腳本。

有人知道嗎?

您可以使用 AJAX 請求 php 頁面,您可以在其中設置一個 cookie,該 cookie 將用作 JS 激活的標志。 在 js 腳本中,您可以檢查 cookie 是否存在,如果它被設置,則意味着用戶啟用了 JS

不幸的是,這不是你能做的。 PHP 代碼通常在瀏覽器呈現任何代碼之前完全執行。

Javascript 在瀏覽器中的禁用不會在初始 header 請求中報告給 PHP。 最接近的做法是使用 Javascript 向 PHP 發出 AJAX 調用,以檢測 Javascript 是否存在。如果回調失敗,那么您可以假設它已禁用。

類似問題: php能否檢測javascript是否開機?

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 或查詢字符串並設置一個 session 變量,說明該用戶啟用了 JS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM