tags:

views:

220

answers:

2

In my HTML page, I need to check if Adobe Flash player is installed. If not, I want to automatically jump to another HTML page to tell the user that a Flash player is required.

I'm using JavaScript to check if the Flash player is available, using the 'JavaScript Flash detection library'.

The body of my html page looks like this :

<body>
    <script type="text/javascript"> 
    if(!FlashDetect.installed)
    {
        alert("Flash 9.0.115 is required to enjoy this site.");
    }
    </script>
    ...
    ...

The detection is working : I can see the alert, but I didn't find a way to jump to another HTML page.

Any hint ?

EDIT : There is something I didn't mention which seems to make a difference : the html pages are local pages (running from a CD-ROM), and I'd like to jump to an html page which is located in the current directory.

+9  A: 
window.location.href = "http://stackoverflow.com";

For local files this should work if you know the relative path: (In your case this works.)

window.location.href = "someOtherFile.html";

Maybe you could also do it absolute using this: (Not tested.)

window.location.pathname = "/path/to/another/file.html/";

The problem are the security measures of the browser vendors. Google has some good information about it.

Georg
+1 Safer than document.location though I'm always forgetting that myself
annakata
I didn't know there was that. ;) (Safe by ignorance)
Georg
It's kind of old school, which is probably synonymous with unsafe :P
annakata
Actually it is working with an http address, but in my case, I'd like to jump to a local html page. I'm actually creating a CD ROM for presentation and I'd like to jump to an HTML page of the CD-ROM.
Jérôme
relative paths will work as well
annakata
it is now working : I had a bug with IE7 because there was a html comment between the HTML tag and HEAD tag !
Jérôme
+2  A: 

Be very wary of instant JavaScript redirects. Flash detection scripts can be wrong(*) so it's best to allow the user to decide Flash-or-not themselves with some kind of manual override, or simply using fallback content.

Writing to location.href works but can "break the back button" - if the user presses Back and your page insta-redirects them forward a page again they're unlikely to be happy. location.replace('...') avoids this problem.

(* - there are two approaches to Flash detection, neither of them reliable. Creating a Flash instance and sniffing for it breaks with software like FlashBlock or just slow loading, and sniffing for plugins directly is not standardised and likely to break on more obscure platforms. Adobe's own code at http://www.adobe.com/devnet/flashplayer/articles/future_detection_print.html ends up resorting to sniffing the UA string, ugh.)

bobince