Is there a way to test to see if javascript is enabled to ensure an application that required javascript is not initiated when it is disabled or otherwise not available?
-
possible duplicate of [How to detect if JavaScript is disabled?](http://stackoverflow.com/questions/121203/how-to-detect-if-javascript-is-disabled) – Mike Weller Apr 05 '13 at 13:51
6 Answers
There is <noscript>
.

- 88,763
- 26
- 134
- 176
-
2remember the caveat with noscript - even if it is not used, it does not guarantee that javascipt is available or working correctly. You can see this by using Firefox Web Developer to turn off javascript. – Colin Pickard Mar 09 '10 at 10:52
-
@Colin: NoScript users will suffer the same: http://stackoverflow.com/questions/993387/noscript-tag-javascript-disabled-warning-and-google-penalty/993461#993461 – Marcel Korpel Mar 09 '10 at 11:21
I tend to use the following way.
1) show an error message per default
<div id="noJS">For use, you need JavaScript enabled. (nice images and perhaps a link to your fav. browser)</div>
2) disable it via javascript and show the main app's container
$("#noJS").hide();
$("#app").show();
If javascript is only needed for e.g. navigation, you should try to deliver a non-js version for non-js users in order to increase your audience.

- 11,999
- 3
- 39
- 63
-
2stackoverflow uses this technique too (to display a red banner at the top of the page) – Colin Pickard Mar 09 '10 at 10:54
-
I would expand 'js' to 'JavaScript' in a message like this. Many end users may have no clue what 'js' is. – scunliffe Mar 09 '10 at 11:35
-
3
-
1
By default, serve the no-Javascript version. Use Javascript to immediately redirect the user to the Javascript version (which will only work if Javascript is enabled).

- 88,763
- 26
- 134
- 176
The scenario is:
- Visitor makes first request to your site
- Deliver a page which sets two cookiesl one with javascript, another with your server side language.
- Header or Meta redirect to another page for testing.
- On test page, check if you received the server delivered cookie to see if cookie support is enabled, and test if javascript cookie was received for JS support enabled.
- Enjoy your new found knowledge.

- 6,618
- 1
- 28
- 34
Not on initial load. You can try to use tricks like setting a cookie in JavaScript and check it on subsequent requests. The best way is to ensure that your site works without JavaScript, and use JavaScript to provide a better experience.

- 45,315
- 11
- 79
- 94
-
-
5@user270797, My Gmail doesn't require Javascript. Gmail has an HTML-only version, which uses Javascript for small added features, such as searching contacts live. – strager Mar 09 '10 at 10:48
You could create a page with <noscript>
content, and have that redirect using javascript to your actual application

- 45,724
- 13
- 98
- 148