0

KendoUI フレームワークを使用して HTML 5 アプリケーションを実行しています。画面の 1 つは、解析して処理する必要がある 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」を使用して作成されたノードに追加すると問題が発生します。

NSメソッドはchrome、FF、Safariで正常に機能したため、これはIE10に固有のようです。

ヒントやアイデアをありがとうございました。

于 2013-02-25T13:26:38.983 に答える