innerhtmlinnerHTML用途

innerhtml  时间:2022-02-23  阅读:()

innerHTML用途

innerHTML 属性的使用非常流行,因为他提供了简单的方法完全替代一个 HTML 元素的内容。另外一个方法是使用 DOM Level 2 API(removeChild, createElement, appendChild)。但很显然,使用 innerHTML 修改 DOM tree 是非常容易且有效的方法。然而,你需要知道 innerHTML 有一些自身的问题: 当 HTML 字符串包含一个标记为 defer 的 script 标签(<script defer>…</script>)时,如 innerHTML 属性处理不当,在 Explorer 上会引起脚本注入攻击。 设置 innerHTML 将会破坏现有的已注册了事件处理函数的 HTML 元素,会在某些浏览器上引起内存泄露的潜在危险。 还有几个其他次要的缺点,也值得一提的: 你不能得到刚刚创建的元素的引用,需要你手动添加代码才能取得那些引用(使用 DOM APIs)。 你不能在所有浏览器的所有 HTML 元素上设置 innerHTML 属性(比如, Explorer 不允许你在表格的行元素上设置innerHTML 属性)。 我更关注与使用 innerHTML 属性相关的安全和内存问题。很显然,这不是新问题,已经有能人围绕这些中的某些问题想出了方法。 Douglas Crockford 写了一个 清除函数 ,该函数负责中止由于 HTML 元素注册事件处理函数引起的一些循环引用,并允许垃圾回收器(garbage collector)释放与这些 HTML 元素关联的内存。 从 HTML 字符串中移除 script 标签并不像看上去那么容易。一个正则表达式可以达到预期效果,虽然很难知道是否覆盖了所有的可能性。这里是我的解决方案: /<script[^>]*>[Ss]*?</script[^>]*>/ig 现在,让我们将这两种技术结合在到一个单独的 setInnerHTML 函数中,并将 setInnerHTML 函数绑定到 YUI 的 YAHOO.util.Dom 上: YAHOO.util.Dom.setInnerHTML = function (el, html) { el = YAHOO.util.Dom.get(el); if (!el || typeof html !== ’string’) { return null; } // 中止循环引用 (function (o) { var a = o.attributes, i, l, n, c; if (a) { l = a.length; for (i = 0; i < l; i += 1) { n = a[i].name; if (typeof o[n] === ’function’) { o[n] = null; } } } a = o.childNodes; if (a) { l = a.length; for (i = 0; i < l; i += 1) { c = o.childNodes[i]; // 清除子节点 arguments.callee(c); // 移除所有通过YUI的addListener注册到元素上所有监听程序 YAHOO.util.Event.purgeElement(c); } } })(el); // 从HTML字符串中移除script,并设置innerHTML属性 el.innerHTML = html.replace(/<script[^>]*>[Ss]*?</script[^>]*>/ig, ""); // 返回第一个子节点的引用 return el.firstChild; };

云基Yunbase无视CC攻击(最高500G DDoS防御),美国洛杉矶CN2-GIA高防独立服务器,

云基yunbase怎么样?云基成立于2020年,目前主要提供高防海内外独立服务器,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)。目前,美国洛杉矶CN2-GIA高防独立服务器,8核16G,最高500G ...

香港服务器多少钱一个月?香港云服务器最便宜价格

香港服务器多少钱一个月?香港服务器租用配置价格一个月多少,现在很多中小型企业在建站时都会租用香港服务器,租用香港服务器可以使网站访问更流畅、稳定性更好,安全性会更高等等。香港服务器的租用和其他地区的服务器租用配置元素都是一样的,那么为什么香港服务器那么受欢迎呢,香港云服务器最便宜价格多少钱一个月呢?阿里云轻量应用服务器最便宜的是1核1G峰值带宽30Mbps,24元/月,288元/年。不过我们一般选...

hostodo:美国大流量VPS,低至$3,8T流量/月-1.5G内存/1核/25gNVMe/拉斯维加斯+迈阿密

hostodo从2014年年底运作至今一直都是走低价促销侧率运作VPS,在市场上一直都是那种不温不火的品牌知名度,好在坚持了7年都还运作得好好的,站长觉得hostodo还是值得大家在买VPS的时候作为一个候选考虑项的。当前,hostodo有拉斯维加斯和迈阿密两个数据中心的VPS在促销,专门列出了2款VPS给8T流量/月,基于KVM虚拟+NVMe整列,年付送DirectAdmin授权(发ticket...

innerhtml为你推荐
元数据管理数据治理包含哪些内容?数据治理有标准吗?查字网衾字怎么读音是什么qq号查询怎样查找本地qq号码oracle索引如何在ORACLE数据库的字段上建立索引天融信防火墙如何使用天融信NGFW4000防火墙工具索引超出了数组界限求助大神什么叫索引超出了数组界限数秦科技天津数沃科技公司怎么样?待遇和发展如何?有人知道么?smartuploadjspsmartupload如何使用?ruby语言ruby什么意思?什么含义?弹幕网站A站B站网址是什么,国内很出名嗎?有什么网站特点..
中国十大域名注册商 花生壳免费域名申请 美国独立服务器 狗爹 nerd 美国仿牌空间 国外空间 京东商城双十一活动 合租空间 免费全能主机 免费cdn 东莞服务器 七夕快乐英语 东莞idc 实惠 xuni netvigator 服务器防御 hosts文件修改 此网页包含的内容将不使用安全的https 更多