簡體   English   中英

檢測是否禁用了JavaScript

[英]Detect if JavaScript is disabled

有什么方法可以檢測頁面加載用戶是否已禁用JavaScript 從而呈現<noscript>標簽? 服務器端或客戶端都可以。

您可以嘗試將圖像放在<noscript>標記內,該標記指向您的php文件,而該php文件隨后應返回圖像。 這可以讓您知道服務器上的用戶已禁用Javascript。

如何識別用戶:您可以依賴會話,或將ID設置為圖片的網址。

您可以使用此問題的答案作為示例,說明如何從php腳本中處理圖像文件,您可以在其中添加邏輯以檢測用戶是否禁用了js:

返回一個PHP頁面作為圖像

這是我很久以前從書中得到的一個想法

<script>
document.cookie= "js_enabled=true";
</script>

在您看到的某些第一頁上使用以上內容。 然后在下一個請求中檢查該cookie,以查看是否啟用了javascript。 當然,如果禁用了cookie,則存在相同的缺陷。

否... 加載頁面后,任何此類檢測都必須使用js進行檢測,如果禁用了該功能,則即使執行任何操作也無法執行。

為什么不一直渲染NOSCRIPT標簽呢? 這就是該標簽的要點,即在禁用JS時提供內容。 如果用戶看到的是NOSCRIPT中的內容,那么他​​們顯然沒有啟用JavaScript。

您還可能在頁面加載時觸發JavaScript AJAX調用。 如果您的服務器收到對該頁面的請求,但是在標准加載時間范圍內未收到客戶端的AJAX調用,則服務器可以假定客戶端不接受JS。 您可能不太介意,但是您在這里處理客戶端JS。

我認為沒有真正好的方法可以進行服務器端JS檢測。 <noscript>是指定非JavaScript內容的語義方式-因此,我想而不是檢測JS是否被禁用,而應該檢測它是否被啟用。 您可以默認隱藏檢測,並將<style>塊放在<noscript>以取消隱藏。

暫無
暫無

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

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