2011-11-05 121 views
1

可能重複:
How to detect if JavaScript is disabled?檢測JavaScript禁用瀏覽器併爲它們分隔網站?

我很好奇什麼其他人會看到的最可行的用於捕捉用戶是否有禁用JavaScript。這裏有兩種我想用的方法:如果有人有一個更好的主意或任何想法或事情,我應該警惕,同時把這些一起,請讓我知道。

首先方法

  1. 傳遞變量到PHP與JavaScript函數。
  2. 取決於變量PHP寫入JavaScript或非JavaScript版本。

第二方法

  1. 傳遞變量到PHP與JavaScript函數。
  2. 取決於使用標頭的可變PHP重定向到JavaScript動力站點或非JavaScript動力站點。

我猜第一個應該是最好的,因爲用戶不會被重定向到頁面之外;但是我很好奇,有沒有更簡單的方法來檢測JavaScript是禁用還是啓用?我可以使用PHP函數而不是使用JavaScript來做到這一點。使用上面的方法可以假設,如果他們禁用JavaScript,變量將不會被傳遞,PHP將輸出該網站的非JavaScript版本。

任何需要?

回答

4

你不需要PHP來做到這一點,它的所有HTML。

讓javascript頁面成爲您的主站點。在它的頭部,你可以有一個noscript標籤,它裏面有一個元素刷新(或更好)到你的非JavaScript頁面。

3

爲什麼不直接使用noscript標籤向用戶顯示消息? http://www.w3schools.com/tags/tag_noscript.asp

除非您有更復雜的理由來看看javascript是否處於活動狀態。一般而言,您只需在noscript標籤中包裝一條大消息,指出javascript是必需的,如果沒有它,情況就不會起作用。純html,沒什麼奇特的。

+0

Khm ... http://w3fools.com/ –

+0

我想要一個單獨的網站打印,所以他們將是ab le仍然瀏覽網站甚至javascrpit。 – Brodie

0

不需要往返。應該能夠判斷瀏覽器是否首次請求支持js。 get_browser的註釋中有一個有趣的討論(和片段列表)(這看起來可能是矯枉過正,並且有一些配置要求)。再次,閱讀API文檔,並在評論中引用一些意見。

http://php.net/manual/en/function.get-browser.php

0

使用<noscript>標記,並在該標記中有一個META重定向,以便沒有JavaScript的用戶轉到您的非JS版本。

所以,你的代碼應該是這樣的:

<noscript> 
<meta http-equiv="refresh" content="0; url=http://foo.com/nojs"> 
</noscript> 

或者,你可以做這樣的事情在你的腳本標籤:

location.href='http://foo.com/js'; 

這樣,你的主要網站是非JS版本,如果JavaScript支持,它會重定向到JS版本使用location.href