2009-01-14 6 views
5

Dans ma page HTML, je dois vérifier si Adobe Flash Player est installé. Sinon, je veux passer automatiquement à une autre page HTML pour indiquer à l'utilisateur que Flash Player est requis. J'utilise JavaScript pour vérifier si le lecteur Flash est disponible, en utilisant le 'JavaScript Flash detection library'.Sauter à une nouvelle page HTML avec JavaScript

Le corps de ma page HTML ressemble à ceci:

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

La détection fonctionne: Je peux voir l'alerte, mais je ne l'ai pas trouver un moyen de passer à une autre page HTML.

Un conseil?

Edit: Il y a quelque chose que je ne l'ai pas mentionné qui semble faire une différence: les pages HTML sont des pages locales (en cours d'exécution à partir d'un CD-ROM), et je voudrais passer à une page HTML qui est situé dans le répertoire courant.

+1

Que se passe-t-il lorsque quelqu'un veut utiliser le site au lieu de l'utiliser, et qu'il n'a pas de lecteur flash? – bandi

Répondre

19
window.location.href = "http://stackoverflow.com"; 

Pour les fichiers locaux cela devrait fonctionner si vous connaissez le chemin relatif: (. Dans votre cas, cela fonctionne)

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

Peut-être que vous pourriez aussi le faire absolu en utilisant ceci: (. Non testé)

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

Le problème sont les mesures de sécurité des vendeurs de navigateurs. Google a quelques good information à ce sujet.

+0

+1 Plus sûr que document.location bien que j'oublie toujours que moi-même – annakata

+0

Je ne savais pas qu'il y avait cela. ;) (Sûr par ignorance) –

+0

C'est une sorte de vieille école, qui est probablement synonyme de dangereuse: P – annakata

4

Soyez très prudent avec les redirections JavaScript instantanées. Les scripts de détection Flash peuvent être erronés (*), il est donc préférable de permettre à l'utilisateur de décider lui-même de Flash-or-not avec une sorte de substitution manuelle, ou simplement en utilisant un contenu de secours. Écrire à location.href fonctionne mais peut "casser le bouton de retour" - si l'utilisateur appuie sur Retour et que votre page insta-redirige une nouvelle page, ils ne seront probablement pas heureux. location.replace ('...') évite ce problème. La création d'une instance Flash et le reniflage de celle-ci se rompent avec des logiciels tels que FlashBlock ou simplement un chargement lent, et le reniflage direct des plugins n'est pas standardisé et risque de casser sur des plates-formes plus obscures, le code d'Adobe au http://www.adobe.com/devnet/flashplayer/articles/future_detection_print.html finit par avoir recours à la détection de la chaîne UA, pouah.)

Questions connexes