Подтвердить что ты не робот

В чем разница между onClick = "javascript: function ('value') '" и onClick = "function (' value ');"?

В чем разница между следующими?

  • onClick="javascript: function('value');"
  • onClick="function('value');"

Когда я использую javascript: перед вызовом функции и почему?

Можно ли вызвать функцию без использования префикса javascript:?

Пожалуйста, помогите мне понять разницу.

4b9b3361

Ответ 1

В обработчике событий inline, например onclick, onchange, onsubmit и т.д., вам не нужен префикс javascript: - причина, по которой вы часто это видите, потому что люди путают его с помощью href, который я объясняю ниже. Это не вызывает ошибки - я считаю, что это интерпретируется как label - но это необязательно.

Не имеет значения, хотите ли вы вызвать функцию или запустить "простой" JS-оператор, ни в коем случае не включайте javascript: - то есть все три из них действительны:

onclick="doSomething('some val');"
onclick="return false;"
onclick="doSomething(); doSomethingElse(); return false;"

Если вы используете встроенные атрибуты событий, не используйте префикс javascript:.

(Я говорю "если вы используете встроенные атрибуты событий", потому что эта практика действительно устарела: лучше назначить обработчики событий с помощью JS в блоке script.)

Вам нужен только префикс javascript:, если вы хотите запустить JavaScript из атрибута <a> element href, как это:

<a href="javascript: someFunc();">Whatever</a>

Это потому, что браузер обычно ожидает, что href содержит URI, поэтому префикс javascript: сообщает ему вместо этого ожидать JS-код. Однако я не рекомендую это делать, потому что страница не будет работать для людей с отключенным JS. Лучше включить href, который направляет пользователя на страницу, сообщающую им включить JS, и включить onclick для выполнения JS-функций:

<a href="/enableJS.html" onclick="doSomething(); return false;">Whatever</a>

Таким образом, ссылка делает что-то полезное для пользователей, независимо от того, включена ли JS или нет. return false в конце обработчика кликов предотвращает поведение по умолчанию для клика (который должен был перейти к указанному URL-адресу).

Ответ 2

Первый имеет полностью избыточный label.

Когда мне нужно использовать "javascript:" перед вызовом функции и в чем причина его использования?

Никогда. (Ну, почти. Вы используете его в URI javascript:, но вы должны использовать их только при написании букмарклета, и они не будут отображаться в атрибуте onclick).

(javascript: URI, где грубо-культовая практика префиксации значений атрибута onclick с меткой исходила.)

могу ли я вызвать функцию без использования "javascript:"??

Да.