在浏览Remy Sharp的Simple Drag and Drop演示的源代码时,我发现了这个功能:
function entities(s) {
var e = {
'"' : '"',
'&' : '&',
'<' : '<',
'>' : '>'
};
return s.replace(/["&<>]/g, function (m) {
return e[m];
});
}
从我看到的,它只是替换“或&amp;或&lt;或&gt;与自身。所以不需要该功能。
我怎么错?
更新 点击页面末尾的“查看来源”即可查看来源。
答案 0 :(得分:2)
我不知道你在哪里看过它(我在你给的网站上找不到它),但你可能误读了这个功能,或者在浏览器进行了某种解析之后读了它。
该功能最有可能将<
与>
和&
与&
一起复制。因为您已通过浏览器看到它,所以浏览器将实体替换回原始字符,从而产生< : <
等。
如果这确实是原始函数并且没有错误,则此函数不执行任何操作。
答案 1 :(得分:2)
我使用Ctrl+U
在Chrome中查看了该页面的来源,这就是我发现的内容:
function entities(s) {
var e = {
'"' : '"',
'&' : '&',
'<' : '<',
'>' : '>'
};
return s.replace(/["&<>]/g, function (m) {
return e[m];
});
}
这显然有所作为 - 也就是说,它用转义形式替换特殊字符。
您看到自己所做的事情的原因是您在“查看来源”页面上查看的来源正在HTML 中呈现。因此,当源“"
字符串在”查看源“页面上呈现时,它会在HTML页面上显示为"
。 HTML5Deoms确实应该在&quot;
这样的视图源页面上转义&符号,以便它在"
上正确显示在渲染的源页面上,但它们不会这样做。
答案 2 :(得分:1)
答案 3 :(得分:1)
我查看了源代码,它说:
function entities(s) {
var e = {
'"' : '"',
'&' : '&',
'<' : '<',
'>' : '>'
};
它正在转义特殊字符,因此可以看到HTML标记和源代码,而不是解释为HTML。
答案 4 :(得分:0)
我不知道你在哪里找到了这个功能,但我觉得真相是对的。 这就是我发现的
function entities(s) {
var e = {
'"' : '"',
'&' : '&',
'<' : '<',
'>' : '>'
};
return s.replace(/["&<>]/g, function (m) {
return e[m];
});
}