0

人々の時間を節約する方法としてこれを掲載しています。

私はjQuery 1.11.3とMVC with ScriptBundleを使用しています

大きなページで、ready.promise で addEventListener を呼び出すとエラーが発生し始めました

おかしなことに、u = document; とすると、u.addEventListener = 未定義ですが、u の下のメソッドを見ると、u = window; と同じように addEventListener が表示されます。

jQueryのソースを見てみると、明らかに

if ( document.readyState === "complete" ) {
            // Handle it asynchronously to allow scripts the opportunity to delay ready
            setTimeout( jQuery.ready );

        // Standards-based browsers support DOMContentLoaded
        } else if ( document.addEventListener ) {
            // Use the handy event callback
            document.addEventListener( "DOMContentLoaded", completed, false );

            // A fallback to window.onload, that will always work
            window.addEventListener( "load", completed, false );

        // If IE event model is used
        }

jQuery-1.11.3.min.js は次のとおりです。

else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else

だから私は問題を理解しようとして気が狂っていました。

次に、IE デバッガーの js 出力で次のことに気付きました。

else y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else

addEventListener のチェックがありませんでした。

スクリプト バンドルを jquery-{version}.js から jquery.1.11.3.js に変更すると、すべてが機能しました (if ステートメントが存在していました)。

再度変更しましたが、引き続き機能するため、明らかにコンパイルに依存する何かが進行中です。

4

1 に答える 1

0

私は最終的にこれを追跡して、jQuery スクリプトからいくつかのものをキャッシュまたは削除する MVC 縮小プロセスにたどり着きました。ただし、スクリプトがそもそも .min バージョンである場合のみです。

于 2015-07-19T21:26:59.417 に答える