跨浏览器的设置 innerHTML 方法 允许插入的 HTML 代码中包含 script 和 style

本文介绍了一个跨浏览器兼容的设置innerHTML的方法,该方法允许在插入的HTML代码中包含script和style元素,并确保在不同浏览器(如IE5+、Firefox1.5+及Opera8.5+)中的正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*  
 * 描述:跨浏览器的设置 innerHTML 方法  
 *       允许插入的 HTML 代码中包含 script 和 style  
 * 作者:kenxu <ken@ajaxwing.com>  
 * 日期:2006-03-23  
 * 参数:  
 *    el: 合法的 DOM 树中的节点  
 *    htmlCode: 合法的 HTML 代码  
 * 经测试的浏览器:ie5+, firefox1.5+, opera8.5+  
 */
var setInnerHTML = function (el, htmlCode) {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {
htmlCode = '<div style="display:none">for IE</div>' + htmlCode;
htmlCode = htmlCode.replace(/<script([^>]*)>/gi,
'<script$1 defer>');
el.innerHTML = htmlCode;
el.removeChild(el.firstChild);
} else {
var el_next = el.nextSibling;
var el_parent = el.parentNode;
el_parent.removeChild(el);
el.innerHTML = htmlCode;
if (el_next) {
el_parent.insertBefore(el, el_next)
} else {
el_parent.appendChild(el);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值