HTML понимает "если-еще"? - PullRequest
6 голосов
/ 19 июля 2010

Допустим, у меня есть Flash-версия и не Flash-версия моего сайта.Когда пользователь заходит на мой сайт, есть ли способ создать следующую логику:

if (user has flash-plugin installed) { load flash website }

else { load non-flash website }

Пока мы здесь.Могу ли я сделать то же самое для контроля пропускной способности?Допустим, клиент Cable посещает мои сайты.У него нет проблем с загрузкой моего полностью загруженного флэш-сайта 10 Мб с фоновыми видео.Но если кто-то с медленным интернет-соединением посещает мой веб-сайт, могу ли я пропустить веб-сайт Flash и перенаправить этого пользователя на веб-сайт не Flash?вообще?

Заранее спасибо!

Ответы [ 7 ]

12 голосов
/ 19 июля 2010

HTML имеет ограниченный набор тестов «если / еще» для возможностей браузера, например, может ли он обрабатывать скрипты (<noscript>), фреймы (<noframes>) и т. Д.

Ваш случай включенФлэш-плагины могут быть обработаны резервным контентом <object>, , например :

<object type="application/x-shockwave-flash" data="x.swf" width="400" height="300">
   <param name="movie" value="x.swf" />
   <p>Your browser does not support Flash etc etc etc.</p>
</object>

(см. Предоставление альтернативных изображений, если Adobe Flash недоступен для других альтернатив.)

Но невозможно управлять полосой пропускания только с помощью HTML.

2 голосов
/ 19 июля 2010

Вы должны использовать JavaScript. Вот инструмент обнаружения плагинов на JS.

http://www.oreillynet.com/pub/a/javascript/2001/07/20/plugin_detection.html

<code> 
var isFlashInstalled = detectFlash();
if (isFlashInstalled)
{
  window.location = "main_with_flash.htm";
}
else
{
  window.location = "main_no_flash.htm";
}
1 голос
/ 06 августа 2010

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

1 голос
/ 19 июля 2010

Вы не можете сделать это в HTML.Но вы можете использовать Javascript для этого.(Что-то вроде это )

1 голос
/ 19 июля 2010

Вы бы использовали Javascript.Вот страница с инструкциями Adobe по обнаружению Flash: http://www.adobe.com/support/flash/how/shock/javaplugs/

Скорость соединения немного сложнее, и для ее тестирования необходимо выполнить множество действий (опять же с использованием JavaScript).Вот подтверждение концепции этого метода: http://alexle.net/archives/257

1 голос
/ 19 июля 2010

Нет, это невозможно в чистом HTML. Вам потребуется помощь JavaScript, или, возможно, серверный язык, такой как PHP, или Server Side Includes (хотя обнаружение Flash лучше всего выполнять с помощью JS.)

Единственное «если / еще» существует - это наличие JavaScript. Все, что находится внутри тега noscript, будет отображаться только в браузерах, которые не поддерживают JavaScript или отключили его.

<noscript>You have JavaScript turned off!</noscript>
0 голосов
/ 02 марта 2016

if-else определенно работает в html-файлах, но я не думаю, что вы можете использовать его для того, что вы предлагаете. Кроме того, это на самом деле JavaScript, поэтому он может быть не тем, что вы ищете.

пример оператора if else:

<script>
if (A == 1) {
    B = 7
} else {
    B = 9
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...