5

エスケープされたhtml値を含む可能性のあるデータ属性を持つこのdivがあります

<div id="test" data-title="&lt;script&gt;alert(&quot;Hello&quot;);&lt;/script&gt;"></div>

これで、data 属性の値を読み取ると、自動的にエスケープ解除されます。たとえば、次のコードではアラートが表示されます。

$(document).ready(function(){
    $("#test").append($("#test").data("title"));
  });

jsfiddle http://jsfiddle.net/FJTW8/3/を参照してください。

エスケープされない理由と解決策は何ですか。

4

3 に答える 3

0

このコードは動作します:

$(document).ready(function(){
   $("#test").text($("#test").data("title"));
});

.append() は .html(); と同じだからです。

于 2013-04-26T10:04:29.517 に答える
0

これを試して

$(document).ready(function(){
  //alert($("#test").data("title"));                
    $("#test").append(escape($("#test").data("title") ) );
  });
于 2013-04-26T10:01:49.130 に答える