Как перенаправить на страницу HTML, если Flash не установлен? - PullRequest
0 голосов
/ 18 февраля 2011

Я хочу, чтобы в моем приложении Flex перенаправлялось на страницу HTML, если у пользователя не установлен Flash. Я заметил, что в HTML, сгенерированном Flash, он имеет:

        <div id="flashContent">
            <p>
                To view this page ensure that Adobe Flash Player version 
                10.0.0 or greater is installed. 
            </p>
            <script type="text/javascript">

                 var pageHost = ((document.location.protocol == "https:") ? "https://" :    "http://"); 
                 document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='" 
                                + pageHost + "www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a>" ); 
            </script> 
        </div>

Который отображает общее сообщение об отсутствии флеш-памяти.

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

Как это сделать во Flex?

1 Ответ

2 голосов
/ 18 февраля 2011

Вы не сможете сделать это во Flex, поскольку ваше приложение не будет загружено, если у пользователя нет правильной версии Flash-проигрывателя.Поэтому лучше всего изменить файл index.template.html.Вы не указали, какую версию Flex вы используете, файл шаблона может отличаться между версиями 4 и 3.

Flex 3 имел следующий код JS, чтобы определить, действительно лиу пользователя есть хорошая версия Flashplayer:

// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65);

// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

if ( hasProductInstall && !hasRequestedVersion ) {

// sniped

} else if (hasRequestedVersion) {

// sniped

} else {  // flash is too old or we can't detect the plugin

И, наконец, выЯ хочу вставить ваш код JS для перенаправления, что-то вроде:

window.location.replace('otherpage.html');

В вашем файле шаблона должно быть что-то похожее на это.

Подробнее о перенаправлениях JS - http://andylangton.co.uk/articles/javascript/javascript-redirect-scripts/

Flex 4

Сначала отключите экспресс-установку из свойств проекта -> Flex Compiler в оболочке HTML. ПРЕДУПРЕЖДЕНИЕ: Это перезапишет вашу папку html-template, поэтому все ваши изменения в этих файлах будут потеряны.После этого вы должны получить всплывающее окно с подтверждением.

Затем откройте html-template / swfobject.js в текстовом редакторе.Перейдите к строке 693 - она ​​должна быть просто в разделе «показывать альтернативное содержимое», иначе в функции embedSWF - и закомментируйте ее и добавьте или просто замените на:

window.location.replace('http://mydomain/noflash.html');

Выполните чистую сборку после сохранения файла.

Это самый простой способ сделать это.Существует также более элегантный способ, при котором вы не изменяете swfobject.js, а вместо этого index.template.html, но для этого требуется немного больше написанного кода.

Обратите внимание на наличие определенных настроекпод Flex Compiler, который перезапишет вашу папку html-template, отменяя любые изменения, которые вы вносите в файлы внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...