Грубо говоря,
<a href>
по умолчанию имеет обработчик кликов, который анализирует URL-адрес и определяет правильный тип действия; для HTTP (S) URL он отправит запрос HTTP (S) и заменит window.location
новым URL, а также правильно обработает History
. Он также имеет другие обработчики, связанные с другими событиями, не только click
.
<button type="submit">
по умолчанию имеет обработчик click
, который определяет, куда должна быть отправлена форма, создает URL в в случае метода GET или тела запроса в случае метода POST, затем выполняется то же самое, что и выше.
<... onclick="...">
вызовет код JavaScript в атрибуте onclick
, если элемент отправил событие click
. Этот код может делать все, что захочет, включая (но не ограничиваясь) имитацию любого из вышеперечисленного ответа на щелчок - но вам придется написать его самостоятельно. Если вы хотите смоделировать все, что делают вышеперечисленные, это будет много работы, и дьявол в деталях. (Кроме того, написание JavaScript кода внутри атрибутов HTML является странным; было бы хорошо связать обработчики событий из кода JavaScript с использованием addEventListener
.)