На самом базовом уровне я понимаю, что встроенный javascript следующий:
<script>prompt()</script>
И это не считается встроенным JavaScript:
<script src="foo.com/bar.js"></script>
Однако есть и другие места, где может жить javascript, например:
<button onclick="prompt()">
<form onsubmit="prompt()">
<img onerror="prompt()">
<style>{something "property":"javascript:prompt()"}</style>
Все ли другие места, где живет javascript, также считаются встроенным javascript?
Какой обходной путь для этого? Встроенные обработчики событий также являются плохой практикой
Согласно этой ссылке , мне пришлось бы регистрировать обработчики событий перед закрывающим телом. Например. Я бы назначил каждому элементу на странице определенный идентификатор и AddEventListener для каждого элемента.
Чтобы убедиться, что я понимаю идею, предположим, что у меня есть форма - перед концом тела я бы включил файл javascript, который добавляет прослушиватель событий, чтобы мой HTML выглядел так:
<body>
<form id="theForm" name="theForm" method="POST"></form>
<script src="eventlisteners.js"></script>
</body>
И eventlisteners.js хотел бы это:
var frm = document.getElementById("theForm");
frm.addEventListener('submit', console.log('foo'))
Это правильно? Также правильно сказать, что каждый встроенный прослушиватель событий HTML имеет соответствующий аргумент addEventListener?