Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Альтернативое отображение...


Автор: мухр 16.8.2005, 06:54
В связи с ненадёжностью Ява-скрипт, его браузерозависимостью, такой вопрос хочу задать: как сделать, чтобы при вызове какой-нибудь функции (рисование выпадающего меню, к примеру) при условии несрабатывания оставалось какое-нибудь хтмл-содержимое по-умолчанию?
Другими словами, Java-script-функция во время создания каких-то элементов на странице должна "затирать" элементы по-умолчанию, содержащиеся изначально в хтмл-коде страницы.
Как сделать?

Автор: diam 16.8.2005, 09:43
Про ненадёжность JavaScript говорить нельзя, ИМХО. Может быть кривая имплементация на отдельных браузерах, но во всех популярных браузерах JavaScript работает одинаково.
Ещё в разнах браузерах могут быть разные объекты с разными методами (например, различия IE и Gecko). Но к JS это прямого отношения не имеет smile.

По теме.
Допустим, есть у нас код HTML
Код

<div id='did'><p>Внутри этого дива размещён какой-то текст, то, что у нас _по_умолчанию_</p></div>

Мы бы хотели написать функцию, которая содержимое div'а чем-то заменяет.
Код

var myFunc() {
  // функция сначала проверяет, поддерживает ли браузер нужные нам методы
  // у нужных нам объектов. Если нет, то выходим. И оставляем содержимое
  // _по_умолчанию_ нетронутым
  if (! (document && document.getElementById && document.getElementById('did'))) return;
}


То есть, если я правильно понял задачу - оставить содержимое без изменения, если браузер что-то там не поддерживает - то решение можно предоставить по такому принципу - не поддерживает, не изменяй.

smile

Автор: Aliance 16.8.2005, 11:13
Копай в сторону тега <noscript>
Код

<script>
<!--
alert('это код JS');
// -->
</script>
<noscript>
А это HTML, появляющийся в случае неподдержки или отключения JavaScript
</noscript>

Автор: мухр 17.8.2005, 04:19
diam, оговорюсь тогда про ненадёжность ИСПОЛЬЗОВАНИЯ java-скрипт. Отдельная тема: java-скрипт может быть просто выключен в настройках браузера или косячить из-за троянов различных на локальной машине. Короче говоря, ряд причин всё-таки имеется, по которым лучше предусматривать альтернативное отображение.
Задача ясна, спасибо за подсказку.

Aliance, по поводу noscript, наверное, не самый удачный выход. Java-script может быть включен, но не сработать по какому-то внутриннему условию функции. Короче, первый способ, пожалуй, более подходящий.

Автор: Aliance 17.8.2005, 12:20
Читай мануалы. Если он выключен - то этот тег и сработает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)