跨浏览器的设置innerHTML方法
来源:互联网 发布:淘宝发货不需要物流 编辑:程序博客网 时间:2024/05/01 12:38
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<script type="text/javascript">
<!--
/*
* 描述:跨浏览器的设置 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="true">');
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);
}
}
}
/*
* 描述:通过重定义 document.write 函数,避免在使用 setInnerHTML 时,
* 插入的 HTML 代码中包含 document.write ,导致原页面受到破坏的情况。
*/
document.write = function() {
var body = document.getElementsByTagName('body')[0];
for (var i = 0; i < arguments.length; i++) {
argument = arguments[i];
if (typeof argument == 'string') {
var el = body.appendChild(document.createElement('div'));
setInnerHTML(el, argument)
}
}
}
//-->
</script></head><body>
<textarea id="inputbox" cols="80" rows="25">请输入您要插入到下面容器中的内容,可以包含脚本。</textarea><br>
<button onclick="setInnerHTML(document.getElementById('container'), document.getElementById('inputbox').value);">确定</button>
<div id="container" style="border: 1px solid rgb(204, 204, 204); width: 640px; height: 480px;"></div>
</body></html>
track back:http://www.ajaxwing.com/index.php?id=3
- 跨浏览器的设置innerHTML方法
- 跨浏览器的设置innerHTML方法
- 跨浏览器的设置innerHTML方法
- 跨浏览器的设置 innerHTML 方法 允许插入的 HTML 代码中包含 script 和 style
- 跨浏览器的设置innerHTML方法,支持插入代码中包含script、style标签
- 跨浏览器的innerHTML.event.srcElment.offsetLeft
- 解决 innerHTML的浏览器兼容问题
- 设置默认浏览器打开的方法?
- 设置windows默认浏览器的方法
- 设置浏览器缓存的几种方法
- 各浏览器下placeholder的设置方法
- google浏览器设置不缓存的方法
- 设置电脑默认浏览器的方法
- 浏览器 通过注册表来设置修改默认浏览器的方法
- innerHTML支持多种浏览器
- js innerHTML 改变div内容的方法
- js innerHTML 改变div内容的方法
- Chrome 浏览器对 innerHTML 处理的兼容性的问题
- DjVu
- 对话框
- 爱她,给她换动感地带
- MFC下的文件类
- 《C++0x漫谈》系列
- 跨浏览器的设置innerHTML方法
- 指针函数和函数指针有什么区别
- PSP: PMP格式视频制作教程
- 怎样将 Debian 3.1 Sarge 升级到 4.0 Etch
- ORACLE数据集纵向变横向并合并列数据
- Java中文相关技术
- asp.net“输入字符串的格式不正确”之解决
- 阿里巴巴雄心勃勃 三年后入驻世界500强(from:csdn新闻频道)
- oralce死锁 和 oracle 重启