IE 10 + jQuery - 无法使用“追加”功能

时间:2013-02-05 07:28:42

标签: javascript jquery xml-parsing internet-explorer-10

我正在使用KendoUI框架运行HTML 5应用程序。一旦屏幕处理需要解析和处理的XML数据。

此屏幕需要显示为弹出窗口,并且该数据显示在此弹出窗口内的网格中。为此,我在单击“show-popup”按钮时调用一个函数,其中我有以下代码:

    var tTranslationXML = XMLFromString(_SelectedCategoryValueRecord.DisplayTextTranslation);
.
.
.
// other stuff but nothing that changes "tTranslationXML"
. 
.
if (_SelectedCategoryValueRecord.DisplayTextTranslation) // and there are values in the translation field
            {
                var $language = $(tTranslationXML).find('Language');
                var $oldTranslation = $($language).find("en-US");
                if ($oldTranslation.length == 0)
                    $oldTranslation = $($language).find(GetCorrectedCase("en-US"));
                if ($oldTranslation.length == 0) {
                    var $newTranslation = $.createElementNS("en-US").text(_UpdatedDisplayText);
                    $language.append($newTranslation);
                }
            }

如果您想知道“XMLFromString”是什么,它只是一个简单的帮助器来解析字符串变量中的XML数据

function XMLFromString(pXMLString) 
{
if (!pXMLString)
    pXMLString = "<Language></Language>";
if (window.ActiveXObject) {
    var oXML = new ActiveXObject("Microsoft.XMLDOM");
    oXML.loadXML(pXMLString);
    return oXML;
} else {
    return (new DOMParser()).parseFromString(pXMLString, "text/xml");
}
}

我的问题是这在Chrome和Firefox上工作正常,但是当执行此特定行时,IE10中出现错误 -

“$ language.append($ newTranslation);”

我基本上是想在这里为我的变量的内容添加一个新的翻译值。

错误如下: SCRIPT13:类型不匹配 jquery-1.8.3.min.js,第2行71981

Please see the screenshot of the error in the IE10 developer tools console here

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

抱歉延迟回复。

我发现问题是避免使用方法“createElementNS”,而是在创建父节点时使用“createElement”方法。此节点的后续附件不会引发任何问题。但是,当您追加到最初使用“createElementNS”创建的节点时会出现问题。

这似乎特定于IE10,因为NS方法在chrome,FF和Safari上运行良好。

谢谢大家的提示和想法。