1

私はこの奇妙な問題を抱えています。できるだけ具体的に説明しようと思います。

私はASP.NET 4.0、jQueryを使用してWebモジュールを開発しており、Ajaxを使用してWebサーバーへのゲッターとセッターを持っています。

製品セレクターがあります。製品を選択するときに、Ajax 呼び出しでデータを取得します。詳細ペインよりも、製品名、画像、説明などを変更します...

FireFox と Chrome では正常に動作しますが、Internet Explorer では、製品名 (および製品名のみ - 同じオブジェクトからの画像と説明) が更新を拒否します。

Visual Studio で改行を配置し、数秒待ってから F5 キーを押すと (正しい製品名が表示されます)、ラベルが変更されます。しかし、F5 を非常に速く叩くと、そうではありません。そこで、setTimeout()50 ミリ秒の遅延を伴うコードを配置しました。これは IE で機能します。

Internet Explorer でこの動作が発生する理由を知っている人はいますか?

いくつかのコード:

success: function (msg) {
        $("#tblHardwareOptions tr").remove();
        var tempDevice = JSON.parse(msg.d[3]);

        $("#imgDevice").attr("src", tempDevice.image);
        $("#deviceDescription").html(unescape(tempDevice.description));
        //=> setTimeOut works, added the "" to be sure it is empty
        //            setTimeout(
        //                function () {
        //without timeout it won't work in IE, even emptying the string
        //                    $(lblMachineName).text("");
        //                    $(lblMachineName).text(unescape(tempDevice.modelname));
        //                }
        //            , 50);
        //Tried without jQuery, but doesn't work neither
        document.getElementById(lblMachineName.replace("#", "")).innerText = unescape(tempDevice.modelname);
4

0 に答える 0