【问题标题】:SCRIPT5022: WrongDocumentError appending element on IESCRIPT5022:IE 上的 WrongDocumentError 附加元素
【发布时间】:2013-10-02 13:52:17
【问题描述】:

简短背景:我一直在尝试创建一个以 XML 提要为源的时事通讯内容生成器。为了使它工作,我必须准备每个 XML 节点元素以适合我的时事通讯布局。

我使用这种方法将 2 个相邻的 xml 元素合并到单个组节点中:

element_getter: function(xml) {

var deals = $(xml).find('campaign:eq(0) deal');

    deals = $.map(deals, function(val, index){

        if (index % 2 == 1) return;


        var group = $(document.createElement('group'));

        $(group).append(deals[index]);

            if (deals[index+1]) 
                $(group).append(deals[index+1]);        

            return group;
        });

        return deals;
    }

IE 出现问题。当我尝试在文档中创建新节点或将任何内容附加到其中时,我得到 SCRIPT5022: WrongDocumentError(FF 或 Chrome 不会发生这种情况) 我已经尝试过以不同的方式附加这个元素(比如 $.parseXML),但它并没有成功。

有什么想法吗?

以下是 XML 源代码示例:

<ebi-cmp-list version="1">
<campaign id="2">
    <title>Campaign</title>
    <startTime ts="201309090600">2013-09-09 06:00</startTime>
    <endTime ts="201309102359">2013-09-10 23:59</endTime>
    <type id="2">spec_offer</type>
    <deals>
        <deal id="15814">
            <event id="15814">Test Event</event>
            <venue id="429">Arena</venue>
            <city id="20">Berlin</city>
            <category id="73">Shows</category>
            <time ts="201310122000">2013-10-12 20:00</time>
            <price>
                <oldPrice currency="EUR">113.00</oldPrice>
                <newPrice currency="EUR">113.00</newPrice>
            </price>
            <ticketsLeft>26</ticketsLeft>
            <link rel="img">http://www.example.com</link>
            <link rel="event">http://www.example.com</link>
        </deal>
        <deal id="15814">
            <event id="15814">Test Event</event>
            <venue id="429">Arena</venue>
            <city id="20">Berlin</city>
            <category id="73">Shows</category>
            <time ts="201310122000">2013-10-12 20:00</time>
            <price>
                <oldPrice currency="EUR">113.00</oldPrice>
                <newPrice currency="EUR">113.00</newPrice>
            </price>
            <ticketsLeft>26</ticketsLeft>
            <link rel="img">http://www.example.com</link>
            <link rel="event">http://www.example.com</link>
        </deal>
    </deals>
</campaign>

【问题讨论】:

  • 我很惊讶其他浏览器没有抱怨,因为通常你不能简单地将属于一个文档(你的 XML)的节点附加到另一个文档(你的 HTML 文档)——你应该只能够将节点附加到具有相同 ownerDocument 的节点中。尝试首先使用importNode 将您的 XML 节点导入 HTML 文档的“范围”。
  • @CBroe 你是完全正确的。 document.importNode 运行良好。
  • 好的,作为答案添加。

标签: javascript jquery xml internet-explorer


【解决方案1】:

我很惊讶其他浏览器没有抱怨,因为通常你不能简单地将属于一个文档(您的 XML)的节点附加到另一个文档(您的 HTML 文档)——您应该只能附加节点到具有相同 ownerDocument 的节点中。

尝试首先使用importNode 将您的 XML 节点导入 HTML 文档的“范围”。

【讨论】:

    猜你喜欢
    • 2014-05-29
    • 2017-03-20
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    相关资源
    最近更新 更多