我正在創建一個使用Rails內置幫助函數向網站添加ajax功能的Web應用程序。我不希望用戶能夠在沒有JS的情況下使用該應用程序,因爲它無法正常工作。Ruby on Rails,Javascript檢測
我需要能夠防止這種情況。我怎麼能停止用戶加載我的任何頁面沒有JS?
我試圖在我的佈局中使用標籤。這檢測到JS的缺席,但仍然呈現的意見。將腳本標記放在yield上可防止呈現任何視圖。
有關如何做到這一點的任何想法?
我正在創建一個使用Rails內置幫助函數向網站添加ajax功能的Web應用程序。我不希望用戶能夠在沒有JS的情況下使用該應用程序,因爲它無法正常工作。Ruby on Rails,Javascript檢測
我需要能夠防止這種情況。我怎麼能停止用戶加載我的任何頁面沒有JS?
我試圖在我的佈局中使用標籤。這檢測到JS的缺席,但仍然呈現的意見。將腳本標記放在yield上可防止呈現任何視圖。
有關如何做到這一點的任何想法?
您可以在head
元素中包含一個noscript
塊,並在其中包含元刷新標記。例如:
<head>
<!-- title, scripts, css etc go here -->
<noscript>
<meta http-equiv="refresh" content="2;url=http://yoursite.com/nojswarning.html">
</noscript>
</head>
你可以閱讀更多關於元刷新here
希望這有助於
編輯:爲了澄清,該noscript
標籤只有在關閉了JavaScript的用戶運行。所以在這種情況下,如果JS被關閉,用戶將被重定向到http://yoursite.com/nojswarning.html
。當然,你可以改變它成爲你想要的任何網站上的任何頁面。
簡單的答案是讓整個應用程序通過JS加載。這樣,應用程序永遠不會顯示有人啓用了JS。
另一種方法是使用加載到JS檢查頁面的iframe啓動頁面。所有頁面都會通過JS將用戶重定向到應用程序的真實URL。因此,如果用戶沒有JS,他們將不會被重定向(並且您可以通知他們他們需要JS with < noscript>標籤)。 (我說要使用iframe,所以你不會給非JS用戶一個簡單的URL來獲得應用程序。)
<noscript></noscript>
似乎工作。我會默認一個帶有疊加層的小型加載器,如果客戶端不支持JavaScript,那麼javascript永遠不會隱藏加載器。 <noscript>
標籤中的內容將與疊加層一起顯示。
謝謝你,偉大的職位,工作完美。 – 2014-03-02 02:44:21