`
royzhou1985
  • 浏览: 250219 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

兼容IE、FF的insertAdjacentHTML方法

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">
  <!--
    function insertHtml(where, el, html){
        where = where.toLowerCase();
        if(el.insertAdjacentHTML){
			switch(where){
				case "beforebegin":
					el.insertAdjacentHTML('BeforeBegin', html);
					return el.previousSibling;
				case "afterbegin":
					el.insertAdjacentHTML('AfterBegin', html);
					return el.firstChild;
				case "beforeend":
					el.insertAdjacentHTML('BeforeEnd', html);
					return el.lastChild;
				case "afterend":
					el.insertAdjacentHTML('AfterEnd', html);
					return el.nextSibling;
			}
			throw 'Illegal insertion point -> "' + where + '"';
        } else {
			var range = el.ownerDocument.createRange();
			var frag;
			switch(where){
				 case "beforebegin":
					range.setStartBefore(el);
					frag = range.createContextualFragment(html);
					el.parentNode.insertBefore(frag, el);
					return el.previousSibling;
				 case "afterbegin":
					if(el.firstChild){
						range.setStartBefore(el.firstChild);
						frag = range.createContextualFragment(html);
						el.insertBefore(frag, el.firstChild);
						return el.firstChild;
					}else{
						el.innerHTML = html;
						return el.firstChild;
					}
				case "beforeend":
					if(el.lastChild){
						range.setStartAfter(el.lastChild);
						frag = range.createContextualFragment(html);
						el.appendChild(frag);
						return el.lastChild;
					}else{
						el.innerHTML = html;
						return el.lastChild;
					}
				case "afterend":
					range.setStartAfter(el);
					frag = range.createContextualFragment(html);
					el.parentNode.insertBefore(frag, el.nextSibling);
					return el.nextSibling;
				}
				throw 'Illegal insertion point -> "' + where + '"';
		}
	}
	
	-->
</script>
</HEAD>

<BODY>
<div id="aa" >click the button to insertAdjacentHTML<br/></div>
<input type="button" value='add' onclick="add();" />
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
<!--
var index = 0;
function add() {
	insertHtml("afterBegin",document.getElementById("aa"),"<input type='text' value=" + index++ + " /><br/>");
	insertHtml("beforeEnd",document.getElementById("aa"),"<input type='text' value=" + index++ + " /><br/>");
}
//-->
</SCRIPT>


分享到:
评论
1 楼 yiminghe 2009-05-12  
这是 ext domhelper 的简化增加bug版吧

你这样子的话  要注意 table , select 表签了


参见:http://yiminghe.iteye.com/blog/364472

相关推荐

Global site tag (gtag.js) - Google Analytics