2009-01-14 25 views
5

Na mojej stronie HTML muszę sprawdzić, czy Adobe Flash player jest zainstalowany. Jeśli nie, chcę automatycznie przejść do innej strony HTML, aby poinformować użytkownika, że ​​Flash jest wymagany.Przeskakiwanie do nowej strony HTML z JavaScript

Używam JavaScript, aby sprawdzić, czy odtwarzacz Flash jest dostępny, używając "JavaScript Flash detection library".

Ciało mojej stronie HTML wygląda następująco:

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

Detekcja działa: widzę alert, ale nie mogę znaleźć sposobu, aby przejść do innej strony HTML.

Dowolna podpowiedź?

Edit: Jest coś nie wspominając, który wydaje się mieć znaczenie: strony HTML stron lokalnych (uruchomiony z dysku CD-ROM), i chciałbym, aby przejść do strony HTML, który znajduje się w bieżącym katalogu.

+1

Co się dzieje, gdy ktoś chce korzystać z witryny zamiast cieszyć się nią, a on nie ma Flash Playera? – bandi

Odpowiedz

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

Dla lokalnych plików to powinno działać, jeśli znasz ścieżkę względną: (. W twoim przypadku to działa)

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

Może też zrobić to absolutny pomocą tego: (. Nie testowany)

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

Problem stanowią środki bezpieczeństwa dostawców przeglądarek. Google ma około good information na ten temat.

+0

+1 Bezpieczniejszy niż document.location mimo, że zawsze zapominam o sobie: – annakata

+0

Nie wiedziałem, że to było. ;) (Bezpieczny przez ignorancję) –

+0

Jest to rodzaj starej szkoły, która prawdopodobnie jest synonimem niebezpieczeństwa: P – annakata

4

Bądź bardzo ostrożny wobec błyskawicznych przekierowań JavaScript. Skrypty wykrywania Flasha mogą być błędne (*), więc najlepiej jest pozwolić użytkownikowi samemu zdecydować o Flash-lub-not z jakimś ręcznym nadpisaniem lub po prostu używając treści zastępczej.

Zapisywanie w location.href działa, ale może "zepsuć przycisk" - jeśli użytkownik naciśnie przycisk Wstecz, a Twoja strona ponownie przekieruje je do przodu, to prawdopodobnie nie będzie zadowolona. location.replace ("...") pozwala uniknąć tego problemu.

(* - istnieją dwa podejścia do wykrywania Flasha, żadna z nich nie jest niezawodna.) Tworzenie instancji Flasha i wykrywanie jej zrywa z oprogramowaniem takim jak FlashBlock lub po prostu powolnym ładowaniem, a sniffowanie wtyczek bezpośrednio nie jest standaryzowane i może się zepsuć na bardziej niejasnych platformach, własny kod Adobe pod numerem http://www.adobe.com/devnet/flashplayer/articles/future_detection_print.html kończy się na wąchaniu łańcucha UA, ugh.)

Powiązane problemy