SCRIPT5022:IE上的WrongDocumentError附加元素

时间:2013-09-26 14:22:32

标签: javascript jquery xml internet-explorer

简短背景:我一直在尝试创建一个以XML Feed为源的新闻稿内容生成器。为了使它工作,我必须准备每个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>

1 个答案:

答案 0 :(得分:4)

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

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