[ic] HOW-TO on detecting javascript

Mike Heins mike at perusion.com
Sun Oct 16 12:28:19 EDT 2005


Quoting Kevin Walsh (kevin at cursor.biz):
> Randy Just [randyjust at justcomp.com] wrote:
> > After looking at the various archives for a long period of time and
> > also analyzing
> > a recent response on this group, I am still befuddled as to good way
> > of detecting
> > if javascript is turned on or not.
> > 
> > I have set-up a kludge for users not having javascript enabled to go
> > to a non-javascript
> > checkout page from shipmode.html.  Right now I have a button in place for
> > users to click on who don't have javascript enabled.
> > 
> > Ideally, I would like to put in the code an [if] statement where if
> > an old browser is detected
> > or if javascript isn't available, the next button will automatically
> > send the user to
> > a non-javascript checkout page.
> > 
> > I am not literate with javascript and have looked at a number of
> > scripts from the archive as
> > well as testing code sets.  I don't seem to be able to set a variable
> > I can compare against
> > to go to the javascript enabled or javascript disabled paged.
> > 
> > I am looking to do something such as
> > 
> > [if old_browser or no javascript]
> >    checkout
> > [else]
> >    finalize
> > [/else]
> > [/if]
> > 
> > with the focus being how to get a javascript value in play to compare
> > against. 
> > 
> I imagine that you could add something like this to your various
> "add to basket" forms:
> 
>     <noscript><input type="hidden" name="no_javascript" value="1"></noscript>
> 
> Once you get to the checkout, you should be able to perform a JS test
> like this:
> 
>     [if value no_javascript]
>         No JS available
>     [else]
>         User has JS
>     [/if]

If you want to figure it out at basket time or something, you
can do:

	[if !scratch set_browser]
	    [set set_browser]1[/set]
	    [set no_javascript]1[/set]
	<img id=testjs src="bg.gif" border=0>
	<script>
		var el = document.getElementById('testjs');
		if(el != undefined)
			el.src = '[area special/setnewbrowser]';
	</script>
	[/if]

	no_javascript=[scratch no_javascript]

Then in pages/special/setnewbrowser.html:

    [set no_javascript]0[/set]
    [deliver file="images/bg.gif"]

The first time you access the basket, you will see "old_browser=1".
The second time, you will see "old_browser=0", assuming the browser
has javascript turned on (and it is late enough to be usable with
the DOM 1.0 code of IC).

Then in your mv_click you can do:

	[if scratch no_javascript]
		mv_nextpage=ord/nojavascript
	[else]
		mv_nextpage=ord/country
	[/else]
	[/if]

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Software axiom: Lack of speed kills.


More information about the interchange-users mailing list