2013-07-09 30 views
3

我以前看过这几次,最后决定找出原因。为什么连接HTML标签时追加到DOM

鉴于这行代码:

$("body").append('<ifr'+'ame src="foo.html"></ifr'+'ame>'); 

他们为什么串联'<ifr' + 'ame'</ifr'+'ame>'

+6

出于愚蠢?猜猜它可能会让人们能够扫描iframe标签的源代码。可能让他们围绕一些安全检查或病毒扫描,或许 – musefan

+2

它与iframe做了很多。 https://github.com/search?q=ifr%27%2B%27ame&type=Code&ref=searchresults –

+1

有些编辑器在代码中扼住了html,打破了编辑器正确的语法突出显示。 –

回答

0

不确定是否应该回答这个问题,基于事实可能有很多原因,只有作者会知道。但是,无论如何...

我能想到的唯一原因(除了只是为了讨厌)将防止某些东西查看代码并看到完整的标记。例如,如果我搜索“iframe”的代码,我不会得到任何匹配。

现在对于这个答案的推测部分:为什么有人想要防止某件事找到匹配的iframe标签?

这里有几个选项,如通过评价由我自己和Kevin B中提供:

  1. 为了防止处理从扫描代码文件和检测的iframe标签。例如,假设您的内容管理系统允许使用HTML/Javascript,但不允许使用iframe。部分上传过程可能是分析代码并寻找标签。这里使用的连接技术会阻止扫描检测iframe,从而允许上传解析软件(例如语法高亮器)可能在JavaScript中混合使用html时出现问题,因此可能会添加拼接方法使解析器能够成功地识别为字符串,它实际上意味着是

在所有示例中的字符串,这将是公平地说,这种技术也可以适用于存在的JavaScript字符串内的其他标记,不只是在此示例中显示的iframe一个