Возможный дубликат:
Вам когда-нибудь приходилось указывать javascript: в onclick?
Что лучше написать в MVC3, когда по событию onclick например мы вызываем функцию с functionName()
? javascript:functionName()
или просто functionName()
?
Возможный дубликат:
Вам когда-нибудь приходилось указывать javascript: в onclick?
Что лучше написать в MVC3, когда по событию onclick например мы вызываем функцию с functionName()
? javascript:functionName()
или просто functionName()
?
На самом деле лучше всего не смешивать javascript и разметку. Таким образом, вы можете незаметно прикрепить этот обработчик события onclick с помощью javascript в отдельном файле. Но что касается вашего вопроса, вам не нужен префикс javascript:
.
javascript:
означает разные вещи в зависимости от того, где он появляется.
В URI это означает выполнение JavaScript для получения ресурса. Это не прогрессивный или ненавязчивый, и его следует избегать.
В JavaScript (которым является значение атрибута onclick
) это метка а>:
while
, do
, for
и switch
.while
, do
, for
или switch
в атрибуте onclick, вам нужно разбить его на функцию ради собственного здравомыслия, когда вы вернетесь, чтобы прочитать его позже.Лучше не использовать javascript в вашем HTML для разделения проблем и ненавязчивого javascript.
Если вы хотите добавить событие onclick, используйте следующее:
document.getElementById('element').onclick = functionName
В вашем файле javascript. Таким образом, уровень представления (HTML) отделяется от уровня логики (Javascript).
Отделение JavaScript от разметки (так называемое поведенческое разделение или ненавязчивый javascript). Когда вы помещаете свой javascript в разметку (как в <div onclick="[javascript:]startMyFunction()" ...>
), выражение должно быть eval
-ed, что порождает другой интерпретатор.
Поэтому более эффективно поместить скрипт туда, где он должен быть: в теге javascript.