Skip to main content

How to make div suddenly show if JavaScript is disabled even if page has already been opened



I know how to display content if JavaScript is disabled, but what I want to do is make a div suddenly appear even if the page is open at the time of JavaScript being disabled.





  1. The page is opened.



  2. The user goes to browser settings and disables JavaScript.



  3. A div shows without refreshing the page.







How can I do this? I've seen other sites do this but I looked at their JavaScript files and didn't find anything in it.





Thanks in advance!


Comments

  1. Here's a solution using CSS animations. They're not supported everywhere, but I can't think of any alternative.

    This hides your message by giving it a font-size of 0, which is reset to 100% after a delay of one second. Every half-second the JavaScript restarts the animation by switching to a dummy animation which keeps the element hidden. (Demo on jsfiddle)

    HTML

    <div id="noscript-message">
    Please enable JavaScript to use this page.
    </div>

    <div>
    Spiffy JavaScript app here!
    </div>


    CSS

    #noscript-message {
    -webkit-animation-duration: 1s;
    -webkit-animation-name: delayedDisplay;
    color: blue;
    }

    @-webkit-keyframes delayedDisplay {
    0% { font-size: 0;}
    99% { font-size: 0;}
    100% { font-size: 100%; }
    }

    @-webkit-keyframes delayedDisplay_dummy {
    0% { font-size: 0; }
    100% { font-size: 0; }
    }


    JavaScript

    var message = document.getElementById("noscript-message");

    setInterval(function() {
    message.style.webkitAnimationName = "delayedDisplay_dummy";
    setTimeout(function() {
    message.style.webkitAnimationName = "delayedDisplay";
    }, 0);
    }, 500);


    You would need to duplicate all of the webkit prefixed properties with the other vendor prefixes; I've omitted them here for clarity.

    ReplyDelete
  2. As far as I know, this is not possible, not without refreshing the page, at least not using just HTML and Javascript. The behaviour you are describing is not in any standard, so different browsers may act differently once a user has selected to disable javascript.

    The normal mechanism as a developer would be use a <noscript> element. Most browsers will display this if the page was loaded and javascript was disabled. Some browsers may display it also if the page loaded and the user then disabled javascript.

    When scripting is disabled, the contents of this element comes up once the page is refreshed.

    ReplyDelete
  3. You could have your <div> inside a <noscript> element, and then use CSS to animate its opacity:

    @-webkit-keyframes showme {
    0% { opacity: 0; }
    100% { opacity: 1; }
    }
    @-moz-keyframes showme {
    0% { opacity: 0; }
    100% { opacity: 1; }
    }
    @-ms-keyframes showme {
    0% { opacity: 0; }
    100% { opacity: 1; }
    }

    #box {
    -webkit-animation: showme 5s;
    -moz-animation: showme 5s;
    -ms-animation: showme 5s;
    }


    ...Of course, browser support would be an issue.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

CCNA 1 Final Exam 2011 latest (hot hot hot)

  Hi! I have been posted content of ccna1 final exam (latest and only question.) I will post the answer and insert image on sunday. If you care, please subscribe your email an become a first person have full test content. Subcribe now  Some question  have not content because this question have images content. So that can you wait for me? SUNDAY 1. A user sees the command prompt: Router(config-if)# . What task can be performed at this mode? Reload the device. Perform basic tests. Configure individual interfaces. Configure individual terminal lines. 2. Refer to the exhibit. Host A attempts to establish a TCP/IP session with host C. During this attempt, a frame was captured with the source MAC address 0050.7320.D632 and the destination MAC address 0030.8517.44C4. The packet inside the captured frame has an IP source address 192.168.7.5, and the destination IP address is 192.168.219.24. At which point in the network was this packet captured? leaving host A leaving ATL leaving...