7

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?

1

6 Answers 6

7

There is <noscript>.

Sign up to request clarification or add additional context in comments.

2 Comments

remember 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: NoScript users will suffer the same: stackoverflow.com/questions/993387/…
5

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.

4 Comments

stackoverflow uses this technique too (to display a red banner at the top of the page)
I would expand 'js' to 'JavaScript' in a message like this. Many end users may have no clue what 'js' is.
That's jQuery. Might be worth mentioning this.
@ColinPickard Stackoverflow uses <noscript> tag to show the warning div. And not the method that has been defined in this answer. Use of <noscript> is the standard method.
3

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).

Comments

2

The scenario is:

  1. Visitor makes first request to your site
  2. Deliver a page which sets two cookiesl one with javascript, another with your server side language.
  3. Header or Meta redirect to another page for testing.
  4. 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.
  5. Enjoy your new found knowledge.

Comments

0

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.

2 Comments

what about applications that explicitly use javascript ie gmail?
@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.
0

You could create a page with <noscript> content, and have that redirect using javascript to your actual application

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.