【问题标题】:ScriptBundle and jQuery minification causes issues with addEventListenerScriptBundle 和 jQuery 缩小导致 addEventListener 出现问题
【发布时间】:2015-06-25 21:56:06
【问题描述】:

我提出这个是为了节省人们的时间。

我正在使用 jQuery 1.11.3,以及带有 ScriptBundle 的 MVC

在大页面上,我开始在 ready.promise 中调用 addEventListener 时遇到错误

有趣的是,给定 u = document; u.addEventListener = 未定义 但是查看 u 下的方法显示 addEventListener 相同,其中 u = 窗口;

看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 语句)。

我又改回来了,它继续工作,所以显然有一些编译依赖。

【问题讨论】:

    标签: javascript jquery asp.net-mvc bundling-and-minification scriptbundle


    【解决方案1】:

    我最终追踪到了 MVC 缩小过程,或者缓存或者从 jQuery 脚本中剥离一些东西。但前提是脚本首先是 .min 版本。

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 2018-03-14
      • 2023-02-09
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 2012-11-01
      相关资源
      最近更新 更多