Оба плохие. Вы хотите addEventListener . Библиотека типа jQuery сделает это намного проще, например:
$('#someid').mouseover(function() { alert('hi') });
Помещение JavaScript в строку HTML никогда не является хорошей идеей; трудно написать (вам нужно беспокоиться о побеге) и трудно поддерживать.
Назначение непосредственно на on*
- это нормально, но тогда вы не можете иметь несколько обработчиков событий для одного и того же события в одном и том же элементе. Если какой-то другой код попытается добавить обработчик позже, он уничтожит ваш обработчик.