Internet Explorer Javascript的附加子问题

Internet Explorer Javascript的附加子问题,javascript,internet-explorer,html,internet-explorer-8,appendchild,Javascript,Internet Explorer,Html,Internet Explorer 8,Appendchild,下面的代码在Firefox和Chrome中正常工作,但在IE中却让我头疼 var anotherDiv= document.getElementById("anotherDiv"); var destination = document.getElementById("mySourceDiv"); destination.appendChild(anotherDiv); 我正在尝试获取一个Div元素并将其放置在另一个Div中。 我(在IE的调试控制台中)收到一条类似于“interfac

下面的代码在Firefox和Chrome中正常工作,但在IE中却让我头疼

var anotherDiv= document.getElementById("anotherDiv");
var destination = document.getElementById("mySourceDiv");    
destination.appendChild(anotherDiv);
我正在尝试获取一个Div元素并将其放置在另一个Div中。 我(在IE的调试控制台中)收到一条类似于“interface not supported”的错误消息,并将我指向appendChild行。 我看到的是,目标变量的类型是对象,而不是DOM元素

如何将另一个div附加到mySourceDiv?
我正在IE 8中尝试这一点。

我建议使用一个专门为您整理浏览器不兼容性的库。我个人觉得jQuery相当不错。jQuery有一个函数。

我建议使用一个专门为您整理浏览器不兼容性的库。我个人觉得jQuery相当不错。jQuery有一个功能。

您可能需要类似importNode的东西,有各种不同的跨浏览器解决方案。问题是,在IE中,每个节点上都有一个对应的文档对象,而所谓的安全性并不能很好地将内容从一个文档移动到另一个文档

因此,本质上它是在进行深度克隆,但使用cloneNode的区别在于cloneNode还设置了您不需要的文档

这可能会让您朝着正确的方向前进:

您可能需要类似importNode的东西,有各种不同的跨浏览器解决方案。问题是,在IE中,每个节点上都有一个对应的文档对象,而所谓的安全性并不能很好地将内容从一个文档移动到另一个文档

因此,本质上它是在进行深度克隆,但使用cloneNode的区别在于cloneNode还设置了您不需要的文档

这可能会让您朝着正确的方向前进:

在重新添加之前,您是否尝试过从“anotherDiv”的父级显式调用“removeChild”?我现在就试试,chrome和firefox会自动删除该div。@Pointy我尝试过,但不起作用。我从window.opener.document.getElementById(“…”)获取对该div的引用,它返回一个对象,而不是DOM对象。当我试图做removeChild时,我得到了无效的参数。我尝试移动的div来自另一个窗口,我尝试将其放置在弹出窗口中。啊-那么您尝试将DOM元素从一个窗口拖动到另一个窗口?嗯,我的(部分迷信)信念是IE对从一个上下文到另一个上下文的东西非常挑剔。但是我不能肯定我知道这就是问题所在。尝试过
anotherDiv.cloneNode()
?在重新添加“anotherDiv”之前,您是否尝试过显式地从“anotherDiv”的父级调用“removeChild”?我现在就试试,chrome和firefox会自动删除该div。@Pointy我尝试过,但不起作用。我从window.opener.document.getElementById(“…”)获取对该div的引用,它返回一个对象,而不是DOM对象。当我试图做removeChild时,我得到了无效的参数。我尝试移动的div来自另一个窗口,我尝试将其放置在弹出窗口中。啊-那么您尝试将DOM元素从一个窗口拖动到另一个窗口?嗯,我的(部分迷信)信念是IE对从一个上下文到另一个上下文的东西非常挑剔。但是我不能肯定我知道这就是问题所在。试过了另一个Div.cloneNode()?从你上面的评论来看,这听起来更像是IE中Bing Maps对象的问题。你试过使用jQuery.detach()然后是jQuery.append()移动另一个Div元素吗?这至少有助于缩小问题的范围。只需调用
appendChild
。这并不能解决问题从您上面的评论判断,这听起来更像是IE中Bing Maps对象的问题。您是否尝试过使用jQuery.detach()然后使用jQuery.append()移动另一个Div元素?这至少有助于缩小问题的范围。只需调用
appendChild
。这并不能解决问题,我会看看你发布的链接。我无法在此div上进行克隆,因为它包含来自Bing Maps的一些动态响应,并且在尝试克隆时,我将该映射作为静态图像获取。您不会调用克隆本身,基本上是迭代当前对象并重新创建每个属性、子节点等。。。确切地查看importNode规范也会让您了解需要做什么。但这很可能就是问题所在。希望有帮助。我会看看你发布的链接。我无法在此div上进行克隆,因为它包含来自Bing Maps的一些动态响应,并且在尝试克隆时,我将该映射作为静态图像获取。您不会调用克隆本身,基本上是迭代当前对象并重新创建每个属性、子节点等。。。确切地查看importNode规范也会让您了解需要做什么。但这很可能就是问题所在。希望能有帮助。