定义和用法

$.parseHTML() 函数用于将HTML字符串解析为对应的DOM节点数组。
注意:
1. 该函数将使用原生的DOM元素创建函数把HTML字符串转换为一个DOM元素的集合,你可以将这些DOM元素插入到文档中。
2. 如果没有指定context参数,或该参数为null或undefined,则默认为当前document。如果创建的DOM元素用于另一个文档,例如iframe,则应该指定该iframe的document对象。
安全考虑:大多数jQuery API都允许HTML字符串在HTML中包含运行脚本。 jQuery.parseHTML()不会运行解析的HTML中的脚本,除非你明确将参数keepScripts指定为true。 不过,大多数环境仍然可以间接地执行脚本,例如:通过属性。调用者应该避免 这样做,并清理或转义诸如URL、cookie等来源的任何不受信任的输入,从而预防出现这种情况。 出于未来的兼容性考虑,当参数keepScripts被省略或为false时,调用者应该不依赖任何运行脚 本内容的能力。
语法
$.parseHTML( htmlString [, context ] [, keepScripts ] )
| 参数 | 描述 |
|---|---|
| htmlString | String类型 需要解析并转为DOM节点数组的HTML字符串 |
| context | Element类型 指定在哪个Document中创建元素,默认为当前文档的document |
| keepScripts | Boolean类型 指定传入的HTML字符串中是否包含脚本,默认为false |
实例
使用一个HTML字符串创建一个数组的Dom节点,并将它插入一个div
<div id="log">
<h3>Content:</h3>
</div>
<script>
$(function () {
var $log = $( "#log" ),
str = "hello, <b>my name is</b> jQuery.",
html = $.parseHTML( str ),
nodeNames = [];
//添加已解析的HTML
$log.append( html );
//集合已解析HTML的节点名称
$.each( html, function( i, el ) {
nodeNames[i] = "<li>" + el.nodeName + "</li>";
});
// 插入节点名
$log.append( "<h3>Node Names:</h3>" );
$( "<ol></ol>" )
.append( nodeNames.join( "" ) )
.appendTo( $log );
})
</script>
示例&说明
以下是与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);
返回值
jQuery.parseHTML()函数的返回值为Array类型,返回解析指定HTML字符串后的DOM节点数组。
jQuery.parseHTML使用原生方法将字符串转换为一个DOM节点的集合,然后可以插入到文档。 这些方法渲染所有尾随或前导文本(即使只是空格)。 为了防止尾随/前导空格被转换为文本节点,你可以通过将HTML字符串传递给jQuery .trim。
默认情况下,如果没有指定或给定null 或 undefined,context是当前的document。如果HTML被用在另一个document中,比如一个iframe,该frame的文件可以使用。
在3.0中,这种默认行为已经被改变。如果没有指定context,或者给定值为null 或 undefined,那么将使用一个新的document。这有可能会提高安全性,因为当HTML解析时,内嵌的事件将不会执行。一旦解析的HTML注入到文档中它会执行,但是这给工具一个机会,遍历创建DOM和删除任何东西被视为不安全。这种改进并不适用于jQuery.parseHTML的内部使用,因为他们通常传递给当前文档。因此,如类似$( "#log" ).append( $( htmlString ) )的声明,仍然受制于恶意代码注入。
Security Considerations(安全注意事项)
大多数的jQuery的API接受的HTML字符串将运行所包含在HTML中的脚本。jQuery.parseHTML不运行HTML中解析出来的脚本,除非 keepScripts参数为true。然而,它仍然是可能在大多数环境中间接地执行脚本,例如通过<img onerror>属性。调用者应该意识到这一点,并通过清理或避免任何不可信来源的输入,如URL或cookies,来防止它。为了未来的兼容性,当keepScripts为不确定的或false时,调用者不应该依赖于这个能力来运行任何脚本内容。
# jQuery
# parseHTML
# 解决jquery有正确返回值但不执行success函数的问题
# jQuery中常用动画效果函数知识点整理
# jQuery实现ajax回调函数带入参数的方法示例
# 基于jquery trigger函数无法触发a标签的两种解决方法
# JavaScript自执行函数和jQuery扩展方法详解
# jQuery使用bind函数实现绑定多个事件的方法
# jquery中封装函数传递当前元素的方法示例
# jQuery中map函数的两种方式
# jquery中用函数来设置css样式
# jquery的$().each和$.each的区别
# 文档
# 如果没有
# 转换为
# 你可以
# 调用者
# 默认为
# 值为
# 未来
# 遍历
# 适用于
# 能在
# 不受
# 这样做
# 意识到
# 这种情况
# 可以使用
# 因为他们
# 仍然是
# 不确定
# 将它
相关文章:
婚礼视频制作网站,学习*后期制作的网站有哪些?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
如何在阿里云域名上完成建站全流程?
建站之星如何优化SEO以实现高效排名?
如何快速查询网址的建站时间与历史轨迹?
建站之星官网登录失败?如何快速解决?
香港服务器选型指南:免备案配置与高效建站方案解析
网站代码制作软件有哪些,如何生成自己网站的代码?
如何制作一个表白网站视频,关于勇敢表白的小标题?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
公众号网站制作网页,微信公众号怎么制作?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
javascript基本数据类型及类型检测常用方法小结
建站之星logo尺寸如何设置最合适?
建站主机解析:虚拟主机配置与服务器选择指南
网站制作员失业,怎样查看自己网站的注册者?
音乐网站服务器如何优化API响应速度?
高端建站三要素:定制模板、企业官网与响应式设计优化
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何在景安云服务器上绑定域名并配置虚拟主机?
智能起名网站制作软件有哪些,制作logo的软件?
建站之星ASP如何实现CMS高效搭建与安全管理?
C#怎么使用委托和事件 C# delegate与event编程方法
做企业网站制作流程,企业网站制作基本流程有哪些?
建站之星价格显示格式升级,你的预算足够吗?
Bpmn 2.0的XML文件怎么画流程图
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
网站企业制作流程,用什么语言做企业网站比较好?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
微信推文制作网站有哪些,怎么做微信推文,急?
网站制作公司,橙子建站是合法的吗?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
移民网站制作流程,怎么看加拿大移民官网?
如何使用Golang安装API文档生成工具_快速生成接口文档
linux top下的 minerd 木马清除方法
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何在阿里云虚拟服务器快速搭建网站?
如何在云虚拟主机上快速搭建个人网站?
建站之星各版本价格是多少?
Swift中switch语句区间和元组模式匹配
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
如何在建站宝盒中设置产品搜索功能?
建站之星后台密码遗忘或太弱?如何重置与强化?
如何选购建站域名与空间?自助平台全解析
电脑免费海报制作网站推荐,招聘海报哪个网站多?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
建站VPS配置与SEO优化指南:关键词排名提升策略
如何在建站之星绑定自定义域名?
*请认真填写需求信息,我们会在24小时内与您取得联系。