04 февраля 2006

Выжить без JavaScript: ссылка vs кнопка

Недавно увидел на одном сайте такой код:

<input type="button" name="name"
value="Go somewhere"
onclick="javascript:
document.location.href=
'www.somewhere.org.ia'"/>

Кнопка была единственным контролом на странице,
т.е. пользовательские данные не собирались.

Вопрос: зачем писать отдельный код, чтобы сделать то, для чего есть простое, готовое и подходящее решение?!

Минусы этого подхода очевидны:

  • выключенный в целях безопасности JavaScript не даст пользователю перейти по ссылке. Конечно, нашего человека это не остановит, и он легко выкусит УРЛ из исходника, но кому это надо?
  • как-то я решил потестить известные сайты в броузере на мобиле... Оказалось, что там (пока) вообще нет такого понятия, как JavaScript.
  • чисто технически писать onclick="javascript:..." бессмысленно, потому что внутри обработчика интерпретатор УЖЕ ждёт JavaScript-код.

Вывод: тут можно обойтись без программирования и положиться чисто на силы броузера, надо просто использовать первооснову гипертекста - простую ссылку.

Далее. Бывает, что формы субмитят так:

<form>
<input />
<input />
<a href="javascript: document.forms[0].submit();
return false;">Submit data</a>
</form>


Минусы те же, за исключение того факта, что в данном случае
href="javascript:..." оправдано, т.к. броузер ждёт здесь ссылку, а не код.


Вывод: и тут можно обойтись без программирования, просто вспомнив о ВСТРОЕННОМ типе инпутов - <input type="submit"/>.

2 комментов:

legendar комментирует...

всё это конечно хорошо, но есть НО :)
в первом случае, если вдруг надо чтобы выводилась именно кнопка а не ссылка то такой подход вполне ясен, не прийдется писать стиль для ссылкы
во втором случае, как быть если наша ссылка находится в другой форме? в таком случае нельзя просто написать input type="submit" !

а мораль такова: в нормальных/серьезных проэктах без жавасрипта выжить нельзя.

удачи!

webmaster комментирует...

нельзя рассматривать эти варианты не зная ради чего они задумывались

Отправить комментарий