您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年09月25日 05:07

原创 jQuery.parseHTML() 函数详解

3169 次浏览 读完需要≈ 5 分钟

内容目录

jQuery.parseHTML()函数用于将HTML字符串解析为对应的DOM节点数组

该函数将使用原生的DOM元素创建函数把HTML字符串转换为一个DOM元素的集合,你可以将这些DOM元素插入到文档中。

该函数属于全局jQuery对象。

语法

jQuery 1.8 新增静态函数

jQuery.parseHTML( htmlString [, context ] [, keepScripts ] )

参数

参数 描述
htmlString String类型需要解析并转为DOM节点数组的HTML字符串。
context Element类型指定在哪个Document中创建元素,默认为当前文档的document
keepScripts Boolean类型指定传入的HTML字符串中是否包含脚本,默认为false

如果没有指定context参数,或该参数为nullundefined,则默认为当前document。如果创建的DOM元素用于另一个文档,例如iframe,则应该指定该iframe的document对象。

安全考虑:大多数jQuery API都允许HTML字符串在HTML中包含运行脚本。jQuery.parseHTML()不会运行解析的HTML中的脚本,除非你明确将参数keepScripts指定为true。不过,大多数环境仍然可以间接地执行脚本,例如:通过<img onerror>属性。调用者应该避免这种做,并清理或转义诸如URL、cookie等来源的任何不受信任的输入,从而预防出现这种情况。出于未来的兼容性考虑,当参数keepScripts被省略或为false时,调用者应该不依赖任何运行脚本内容的能力。

返回值

jQuery.parseHTML()函数的返回值为Array类型,返回解析指定HTML字符串后的DOM节点数组。

示例&说明

以下是与jQuery.parseHTML()函数相关的jQuery示例代码,以演示jQuery.parseHTML()函数的具体用法:

// "<\/script>"必须通过\将/转义,否则JS会认为已经到了脚本结束的位置
var html = 'Hello,<b>CodePlayer</b><script type="text/javascript">alert("执行脚本代码");<\/script>';


var doms = $.parseHTML( html );
// 不会执行脚本代码
$("#n1").append(doms);

alert("分割线");

doms = $.parseHTML( html, true );
// 会执行脚本代码
$("#n1").append(doms);

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单