2012-03-05 2 views
3

Можно создать дубликат:
Do you ever need to specify javascript: in an onclick?Что лучше - javascript: functionName() или просто functionName()?

Что лучше писать в MVC3, когда на событие OnClick, например, мы называем функцию с functionName()? javascript:functionName() или только functionName()?

+0

Ваш ответ здесь: http: // stackoverflow.com/questions/372159/do-you-ever-need-to-specific-javascript-in-an-onclick Пожалуйста, используйте поиск :) – Oyeme

+0

Спасибо, я использовал поиск, но после 10 минут поиска javascript: и другие подобные вещи я сдался и написал вопрос. – Unknown

ответ

4

На самом деле лучше всего не смешивать javascript и разметку. Поэтому вы можете привязать этот обработчик события onclick ненавязчиво, используя javascript в отдельном файле. Но, что касается вашего вопроса, вам не нужен префикс javascript:.

1

Лучше не использовать javascript в своем HTML, для разделения проблем и ненавязчивого javascript.

Если вы хотите добавить событие OnClick, используйте следующее:

document.getElementById('element').onclick = functionName 

В вашем файле JavaScript. Таким образом, уровень представления (HTML) отделен от логического уровня (Javascript).

1

Отделив javascript от разметки (aka behavioral separation или unobtrusive javascript) - это путь. Когда вы помещаете свой javascript в разметку (как в <div onclick="[javascript:]startMyFunction()" ...>), выражение должно быть eval -ed, которое порождает другой интерпретатор.
Таким образом, более эффективно поставить скрипты там, где они есть: в тег javascript.

2

javascript: означает разные вещи в зависимости от того, где он появляется.

В URI это означает выполнение JavaScript для получения ресурса. Это не progressive или unobtrusive, и его следует избегать.

В JavaScript (который значение атрибута onclick есть), это label:

  • Там нет смысла в маркировке ничего, кроме while, do, for и switch.
  • В большинстве случаев, если ярлык будет полезен, рефакторинг кода будет лучше.
  • javascript - ужасная метка для утверждения в программе JavaScript.
  • Если у вас есть while, do, for или switch в атрибут OnClick, то вам нужно разбить его в функцию, ради вашего собственного здравого смысла, когда вы вернетесь, чтобы прочитать его позже.
  • атрибуты onclick не являются unobtrusive, и их следует избегать в любом случае.