如何在加载任何其他模块之前加载非 AMD 模块?我有一个用于 console.x 的 shim,但在加载它之前遇到了麻烦。
我还希望仅在条件为真时才加载它 - 所以在这种情况下,因为它是一个控制台垫片,我想测试一下“控制台”是否未定义,然后只在条件为真时加载控制台垫片。
请注意,我正在使用 RequireJS 并且也有 Modernizr 可供使用。
谢谢。
如何在加载任何其他模块之前加载非 AMD 模块?我有一个用于 console.x 的 shim,但在加载它之前遇到了麻烦。
我还希望仅在条件为真时才加载它 - 所以在这种情况下,因为它是一个控制台垫片,我想测试一下“控制台”是否未定义,然后只在条件为真时加载控制台垫片。
请注意,我正在使用 RequireJS 并且也有 Modernizr 可供使用。
谢谢。
这个演示展示了做你想做的事情的基本方法。
以下脚本:
<script>
if ("undefined" === typeof window["mozInnerScreenX"]) {
document.writeln("<script src=http://jsbin.com/erevub/4></scr" + "ipt>");
}
</script>
<script>
alert(mozInnerScreenX);
</script>
从此脚本导入:
window["mozInnerScreenX"] = window["mozInnerScreenX"] || (function () {
return 999;
}());
我使用mozInnerScreenX
了 shim 属性,因为我机器上的所有浏览器都有console
.
使用的第一个脚本块document.writeln
必须位于与使用 shim 的以下脚本不同的脚本块中。
一个坏主意有很多原因document.writeln
,但我不知道你的完整用例,所以这是最简单的。
999
我收到有关 IE 和 Chrome(垫片值)和1074.5
Firefox(实际值)的警报。