После обновления до Chrome v71 я обнаружил странное поведение в области видимости тега привязки, внутри которого есть тег img, например:
<a href="#none" onclick="debugger;complete();">
<img src="https://clickmeuk.net/wp-content/uploads/2016/04/click-me-logo2x.png"/>
</a>
...
function complete() {
alert("haha");
}
В Chrome до версии v71 и других браузеров,щелчок по img вызовет событие onclick и отобразится предупреждение.Но с момента последнего обновления тот же код приводит к появлению ошибки ниже:
Uncaught TypeError: complete is not a function at HTMLAnchorElement.onclick (index.html:6)
Это происходит потому, что в Chrome v71 область щелчка тега привязки достигает области тега img до он достигает глобальной области видимости, поэтому ссылается на поле complete
узла img вместо функции complete()
.В этом pen .
это воспроизводимо. <img>
является дочерним узлом <a>
, поэтому при запуске onclick ссылка на область действия <img>
кажется странной.Конечно, вы можете исправить это, просто изменив имя функции на что-то отличное от complete
.Но я не знаю, что могло вызвать изменения.Chrome v70 или Explorer или Safari работает как положено.Может ли это быть ошибкой?Или я пропустил какое-то обновление, которое еще не реализовано другими браузерами?