Недавно я начал глубже изучать JavaScript и заметил интересную вещь. В некоторых примерах кода я видел, что перед функциями в обработчиках событий HTML-элементов стоит префикс javascript:. Меня это озадачило.
Есть ли разница между этими двумя вариантами? Зачем вообще нужен этот префикс javascript:? Может быть, это устаревший синтаксис или у него есть какое-то особое применение?
Буду благодарен, если кто-нибудь объяснит, в чем тут дело. Спасибо!
да, префикс ‘javascript:’ это пережиток прошлого. сам недавно с этим столкнулся, когда переписывал старый код. сейчас такое писать не надо, браузеры и так понимают что это джаваскрипт. вообще советую вынести обработчики событий из html в отдельный js-файл, так код будет намного чище и удобнее поддерживать. а еще можно использовать arrow-функции для краткости, мне они очень нравятся. ты уже пробовал такой подход?
Префикс ‘javascript:’ - это рудимент старых версий. Сейчас он не нужен и даже может вызвать проблемы. Лучше его не использовать вообще. Современные браузеры и так понимают, что в атрибутах on* должен быть JS-код. Вместо инлайн-обработчиков рекомендую добавлять слушатели событий через addEventListener - так код будет чище и гибче. А для совсем старых браузеров можно использовать полифилы.
На самом деле, префикс ‘javascript:’ устарел и не обязателен: современные браузеры сами понимают, что это JS. Я предпочитаю назначать обработчики через addEventListener, так код чище. А ты как считаешь – есть ли в этом какие-то преимущества в специфических случаях?