0

我正在使用 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: Type mismatch jquery-1.8.3.min.js, line 2 character 71981

请在此处查看 IE10 开发者工具控制台中的错误截图

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

4

1 回答 1

0

回复较晚,抱歉。

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

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

谢谢大家的提示和想法。

于 2013-02-25T13:26:38.983 回答