javascript - 为什么在附加到 DOM 时要连接 HTML 标签

标签 javascript jquery concatenation

我以前见过几次这个,最后决定找出原因。

鉴于这行代码:

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

为什么他们要连接'<ifr' + 'ame'</ifr'+'ame>'

最佳答案

有点不确定我是否应该回答这个问题,因为可能有很多原因,只有作者知道。但无论如何……

我能想到的唯一原因(除了烦人之外)是防止某些人查看代码并看到完整的 <iframe>标签。例如,如果我在代码中搜索“iframe”,我将不会得到任何匹配项。

现在这个答案的推测部分:为什么有人想要阻止某些东西找到匹配的 iframe 标记?

以下是我和 Kevin B 通过评论提供的几个选项:

  1. 防止进程扫描代码文件并检测 iframe 标记。例如,假设您有一个允许 HTML/Javascript 但不允许使用 iframe 的内容管理系统。上传过程的一部分可能是分析代码并查找标签。这里使用的串联技术将阻止扫描检测 iframe,从而允许上传

  2. 解析软件(例如语法荧光笔)在处理 JavaScript 中混合的 html 时可能会出现问题,因此添加串联方法可能会让解析器成功地将字符串识别为它实际应有的字符串

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

关于javascript - 为什么在附加到 DOM 时要连接 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552283/

相关文章:

PHP - 合并多个 while 循环的输出

javascript - 电子商务网站如何检测用户是否登录?

javascript - 使用 Javascript 访问标签值

javascript - 如何为 jquery UI 对话框添加标题?

python - 数据错误使用函数和groupby来合并pandas数据框中的字符串

MySQL 连接脚本

javascript - 找不到模块 : Error: Cannot resolve module 'components/app' . webpack + reactjs 问题

javascript - 使用 window.open() 打开文件时传递 url 参数(从 ColdFusion 页面)

javascript - 使用 Jasmine 测试 Angular Promise

jquery slider 问题