Poniżej mam tag HTML i używam JavaScript, aby wyodrębnić wartość atrybutu widgetu. Kod ten będzie ostrzegać <test>
zamiast <test>
, więc przeglądarka automatycznie unescapes wartości atrybutu:Dlaczego przeglądarka automatycznie unescape wartości atrybutu znacznik html?
alert(document.getElementById("hau").attributes[1].value)
<div id="hau" widget="<test>"></div>
Moje pytania są następujące:
- Czy takie zachowanie można zapobiec w inny sposób, oprócz wykonanie podwójnej ucieczki zawartości atrybutów? (Wyglądałoby to tak:
&lt;test&gt;
) - Czy ktoś wie, dlaczego przeglądarka zachowuje się w ten sposób? Czy jest jakieś miejsce w specyfikacjach HTML, że to zachowanie jest wyraźnie wymienione?