Переход на новую HTML-страницу с JavaScript - PullRequest
5 голосов
/ 14 января 2009

На моей HTML-странице мне нужно проверить, установлен ли Adobe Flash player. Если нет, я хочу автоматически перейти на другую HTML-страницу, чтобы сообщить пользователю, что требуется Flash player.

Я использую JavaScript, чтобы проверить, доступен ли Flash Player, используя JavaScript-библиотеку Flash Flash '.

Тело моей HTML-страницы выглядит так:

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

Обнаружение работает: я вижу предупреждение, но я не нашел способа перейти на другую HTML-страницу.

Есть подсказка?

Редактировать: Есть кое-что, что я не упомянул, что, кажется, имеет значение: страницы HTML - это локальные страницы (запущенные с компакт-диска), и я хотел бы перейти к HTML-страница, которая находится в текущем каталоге.

Ответы [ 2 ]

24 голосов
/ 14 января 2009
window.location.href = "http://stackoverflow.com";

Для локальных файлов это должно работать, если вы знаете относительный путь: (В вашем случае это работает.)

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

Может быть, вы также можете сделать это абсолютно, используя это: (Не проверено.)

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

Проблема заключается в мерах безопасности поставщиков браузеров. У Google есть полезная информация об этом.

4 голосов
/ 14 января 2009

Будьте очень осторожны с мгновенными перенаправлениями JavaScript. Сценарии обнаружения флэш-памяти могут быть неправильными (*), поэтому лучше разрешить пользователю самим выбирать флэш-память или нет с помощью какого-либо ручного переопределения или просто использовать запасной контент.

Запись в location.href работает, но может "сломать кнопку" назад "- если пользователь нажимает кнопку" Назад ", а ваша страница перенаправляет их на страницу еще раз, они вряд ли будут счастливы. location.replace ('...') позволяет избежать этой проблемы.

(* - есть два подхода к обнаружению Flash, но ни один из них не является надежным. Создание экземпляра Flash и анализ его на наличие сбоев происходит с помощью программного обеспечения, такого как FlashBlock, или просто медленная загрузка, и анализ кода непосредственно для плагинов не стандартизирован и, скорее всего, будет нарушен больше неясных платформ. Собственный код Adobe на http://www.adobe.com/devnet/flashplayer/articles/future_detection_print.html заканчивает тем, что нюхает строку UA, тьфу.)

...