javascript克隆节点

克隆节点最简单的方式就是使用cloneNode(true)来实现,这是最简单也是最直接的方式。
但是,总有但是,在IE里面,这个cloneNode却有我们不想要的动作。
如果在页面的head中写了一些外链的javascript
   
在这个时候,如果想要克隆整个head节点,那就用head.cloneNode(true);
OK,问题出现了,在IE9中,global.js会被重新加载,如果在global.js中有写一些直接加载就执行不是调用执行的代码,那这些代码又会触发一次。想象一下,如果这个global.js是jquery,那就要执行一次jquery了。
之所以放弃那个函数是以为我找一个更方便的方式来克隆head,而不会导致head里面的js又触发。

var cloneNode = function(node,cloneAll){
    	if(!node || !node.nodeType){
    		return node;
    	}
    	if(!cloneAll){
    		return node.cloneNode(false);
    	}
    	var range = document.createRange();
    	range.selectNode(node);
    	var frag = range.cloneContents();
    	return frag.firstChild;
    };


你可能感兴趣的:(javascript,javascript,jquery,function,ie)