[英]Detect if JavaScript is disabled
有什么方法可以檢測頁面加載后用戶是否已禁用JavaScript ,從而呈現<noscript>
標簽? 服務器端或客戶端都可以。
您可以嘗試將圖像放在<noscript>
標記內,該標記指向您的php文件,而該php文件隨后應返回圖像。 這可以讓您知道服務器上的用戶已禁用Javascript。
如何識別用戶:您可以依賴會話,或將ID設置為圖片的網址。
您可以使用此問題的答案作為示例,說明如何從php腳本中處理圖像文件,您可以在其中添加邏輯以檢測用戶是否禁用了js:
這是我很久以前從書中得到的一個想法
<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.