如何在加载任何其他模块之前加载无AMD模块?我有一个适用于console.x的垫片,但在加载之前无法解决问题。
我也希望只在条件成立时加载它 - 所以在这种情况下因为它是一个控制台垫片,我想测试看看'console'是否未定义,然后只加载控制台垫片,如果条件是真。
注意我正在使用RequireJS并且还要使用Modernizr。
感谢。
答案 0 :(得分:0)
这个演示展示了做你想做的事的基本方法。
以下脚本:
<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
的第一个脚本块必须位于使用垫片的以下脚本的单独脚本块中。
为什么document.writeln
是一个坏主意有很多原因,但我不知道你的完整用例,所以这是最简单的。
我在IE和Chrome上发送999
(垫片值),在Firefox上发送1074.5
(实际价值)。