关闭-库加载不正确

Closure - library not loading properly

本文关键字:不正确 加载 关闭      更新时间:2023-09-26

我的开发环境中有一个运行良好的闭包环境。在一个新文件夹&文件,但它不起作用。

例如,以这个测试脚本为例:

goog.require('goog.dom');
console.log(goog);
console.log(goog.dom);
goog.dom.getElement('logout').innerHTML = "Heck";

仅此而已,再加上HTML中的base.js

第一个console.log显示了一个对象,里面有所有正确的东西。所有文件也都加载到DOM中。

然而,第二个控制台日志显示undefined,因此最后一行不起作用(显然)。Chrome控制台错误为Uncaught TypeError: Cannot call method 'getElement' of undefined

到底发生了什么事?如果我尝试XhrIo也是一样的。它没有在goog对象上找到方法。

谢谢。

文档:

注意:不要将goog.require()语句放在同一个脚本标记中作为使用goog.required函数或类。goog.require()调用在包含调用的脚本标记。

所以

<script>
    goog.require('goog.dom');
    console.log(goog.dom);
</script>

打印CCD_ 7。但是

<script>
    goog.require('goog.dom');
</script>
<script>
    console.log(goog.dom);
</script>

<script>
    goog.require('goog.dom');
    addEventListener('load', function() {
        console.log(goog.dom);
    });
</script>

打印对象。

仅供参考,还有其他可能的工作流程。例如,closurebuilder.py脚本可以帮助提前加载所有需要的文件。