У меня возникли проблемы с пониманием того, как escaping работает внутри значений атрибутов тега html, которые являются javascript.
Мне повезло, что вам всегда нужно убежать и "" < > . Поэтому для javascript как значения атрибута я попытался:
<a href="javascript:alert('Hello');"></a>
Это не работает. Однако:
<a href="javascript:alert('Hello');"></a>
и
<a href="javascript:alert('Hello');"></a>
работает во всех браузерах!
Теперь я совершенно смущен. Если все мои значения атрибутов заключены в двойные кавычки, значит ли это, что мне не нужно избегать одиночных кавычек? Или это просто и технически разные персонажи? Для того чтобы javascript требовал ascii 39, но не apos?