在脚本块中通过goog.require加载文件失败

Kai*_*Kai 3 javascript google-closure-library

在标记goog.require内部使用<script>加载脚本时,不会加载指定的文件.例如:

<script>
goog.require('goog.dom');
var mydiv = goog.dom.$('foo');
</script>
Run Code Online (Sandbox Code Playgroud)

得到:

goog.dom is undefined
Run Code Online (Sandbox Code Playgroud)

这个用法有什么问题?

Kai*_*Kai 9

问题是在当前脚本标记之后goog.require动态地将所需的脚本标记添加到文档中.所以,例如:

<script>
goog.require('stuff');

doSomething();
</script>
Run Code Online (Sandbox Code Playgroud)

翻译为:

<script>
goog.require('stuff');

doSomething();
</script>
<script src=[included stuff] type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

解决方案是为需求提供单独的脚本标记:

<script>
goog.require('stuff');
</script>

<script>
doSomething();
</script>
Run Code Online (Sandbox Code Playgroud)