当我发现这个奇怪的问题时,我正在清除我的网站的一些问题。
<img src=".." width="1200" height="1200" alt="<script>alert("foo");</script>" />
CMS 似乎已经完成了它的工作并转换<script>alert('foo')</script>
为您在上面看到的内容。我使用以下代码显示标题。
site.caption = {
container : $('#caption'),
set : function(str) {
if (str && str.length) {
this.container.html('<span>'+str+'</span>').show(); console.log(str);
} else {
this.container.hide();
}
}
};
函数是这样调用的。
site.caption.set($(nextSlideElement).find('img').attr('alt'));
当此行运行时,会弹出一个带有文本“foo”的警告框。当我在site.caption.set
函数中执行以下操作时,它会显示有效的 html。
console.log(str);
我正在使用 jQuery 1.8.3。有谁知道为什么会这样?如何在<script>alert('foo')</script>
不运行的情况下显示文本?