0.0
No commit activity in last 3 years
No release in over 3 years
Many sites these days absolutely require a user to have Javascript enabled in order to function properly. You may have one yourself. Users that either have JS disabled or only allow trusted sites to execute JS should be given a textual warning that their user experience may be hampered. This Rack middleware will append a div with a customizable message to the HTTP response body, right after the opening <body> tag. This warning message is then hidden via a CSS command that is written by Javascript.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 1.0
 Project Readme

Rack::Unscripted¶ ↑

This is a small piece of Rack middleware that will append a message to your HTML warning a user that they need to enable JavaScript in order to properly view your site.

The Rack middleware will append a <div> right after the opening body tag, but hide it via a CSS directive that is written by JavaScript in the <head> section. This prevents any flashing that can happen by merely hiding the element via JS directly. We don’t use the <noscript> tag since it has spotty support and doesn’t work when a user is using a browser plugin to whitelist JS on certain sites.

The div that is created can be referenced in CSS the the id, rack-unscripted-no-javascript-warning, so you can style this warning (when it does get displayed) to your heart’s content.

Example¶ ↑

Original HTML:

<html>
  <head>
    <title>The Bucket of Truth</title>
  </head>
  <body>
    ...stuff!...
  </body>
</html>

HTML with Rack::Unscripted enabled:

<html>
  <head>
    <title>The Bucket of Truth</title>
    <script type="text/javascript">
      document.write('<style>#rack-unscripted-no-javascript-warning { display:none }</style>');
    </script>
  </head>
  <body>
    <div id='rack-unscripted-no-javascript-warning'>
      Warning, this site requires JavaScript to function properly. Please enable it.
    </div>
    ...stuff!...
  </body>
</html>

Installation¶ ↑

Make sure to install this gem:

gem install rack-unscripted

or, add the following to your Gemfile:

gem 'rack-unscripted'

Then you need to configure your middleware stack to use this library.

Usage¶ ↑

use Rack::Unscripted

or

use Rack::Unscripted, "Custom warning message to users without JavaScript enabled."

Example Configuration¶ ↑

Rails 3.x¶ ↑

In config/initializers/rack_unscripted.rb

MyApplicationName::Application.config.middleware use "Rack::Unscripted"

Rails 2.3.x¶ ↑

In config/environment.rb

config.middleware.use "Rack::Unscripted"

Sinatra¶ ↑

require 'rack/unscripted'
use Rack::Unscripted