onclick = «javascript: func ()» против onclick = «func ()» [дубликат]

This question already has an answer here:

Do you ever need to specify 'javascript:' in an onclick? 8 answers

Есть ли разница между

<code><input type="submit" value="Register" onclick="javascript:submitTheForm();">
</code>

а также

<code><input type="submit" value="Register" onclick="submitTheForm();">
</code>

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

 Andreas Wong20 апр. 2012 г., 10:15
Нет, вам не нужно ...
 Phat Wangrungarun20 апр. 2012 г., 10:22
Спасибо! Я знаю об обработчиках, просто сомневаюсь в этом деле :)
 Joseph20 апр. 2012 г., 10:19
в любом случае, использование встроенного кода не является хорошей практикой
 Tobi20 апр. 2012 г., 10:17
на ***** запускается javascript, не определяя их как & quot; javascript: & quot;

Ответы на вопрос(3)

onclick атрибута, вы не должны использоватьjavascript: префикс. Это полезно, когда вы хотите ссылку<a /> для обработки функции JS, например:

<a href="javascript:myfunc();"></a>
 20 апр. 2012 г., 10:19
javascript: URL-адреса плохие. Они не только ломают отключенный JavaScript, но и вызывают проблемы, если функция возвращает значение. Поэтому лучше использовать правильный URL вhref (или же# если ссылка не имеет запасной вариант не-js) иonclick запустить свой код JavaScript (return false;/preventDefault чтобы избежать загрузки ссылки)
 20 апр. 2012 г., 10:21
Я с тобой согласен. Вопрос был оjavascript: префикс.

javascript:func() используетпротокол JavaScript чтобы его можно было использовать в якоряхhref приписывать. Однако не делайте этого, см.Почему плохой практикой является использование ссылок с javascript: & # x201C; protocol & # x201D ;? для дополнительной информации.

Обработчики событий предпочтительнее инициировать события вместо атрибутов.

 20 апр. 2012 г., 10:20
ОП спросил оonclick, не оhref
 Phat Wangrungarun20 апр. 2012 г., 10:24
В любом случае спасибо за связанный вопрос!
 20 апр. 2012 г., 10:26
@ThiefMaster - правда, но он также спрашивал о сценарии, начинающемся сjavascript:.
Решение Вопроса

javascript: внутриonwhatever="" обработчик не работает. Содержимое этого атрибута всегда JavaScript, поэтомуjavascript: определяетэтикетка - но за пределамиswitch блок или цикл (где вы можете использовать его дляbreak/continue на позицию этикетки) это ничего не делает.

Однако использование встроенных обработчиков событий не рекомендуется, естьлучше пути зарегистрировать обработчики событий.

Хотя это не упомянуто в вопросе, стоит отметить, что использованиеjavascript: вhref Атрибут работает (и там это действительно необходимо), но крайне не рекомендуется по разным причинам:

this does not point to the element Calling a function returning a value causes the browser to leave the site Clicking the link with disabled JavaScript breaks Trying to open the link in a new window/tab breaks

Итак, если вам действительно нужно использовать встроенные события, всегда используйтеonclick="" и т.д. безjavascript:.

 20 апр. 2012 г., 10:23
Правда; обновил мой ответ.
 20 апр. 2012 г., 10:20
Вы можете использовать его также сbreak и любое заявление. Это не должно использоваться вместе сswitch.

Ваш ответ на вопрос