1)はあなたがhtmlEncode()に近いよう
が見える二重のエスケープをやっなしを行うことができます。 あなたは純粋なバニラJSソリューション
alert(htmlEncode(document.getElementById("hau").attributes[1].value))
function htmlEncode(html) {
return document.createElement('a').appendChild(
document.createTextNode(html)).parentNode.innerHTML;
};
<div id="hau" widget="<test>"></div>
2に興味があればあなたがjQuery
alert(htmlEncode($('#hau').attr('widget')))
function htmlEncode(value){
//create a in-memory div, set it's inner text(which jQuery automatically encodes)
//then grab the encoded contents back out. The div never exists on the page.
return $('<div/>').text(value).html();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="hau" widget="<test>"></div>
を使用して気にしない場合)なぜブラウザはこのように動作しますか?
このような動作のために、以下に示すように、事前入力フィールドの中に引用符を含めたり、挿入する唯一の方法"
再び\
<input type='text' value=""You 'should' see the double quotes here"" />
ような別のチャーとエスケープ必要とするであろうそれ自体を添加することにより、あります