繁体   English   中英

D3.js:未捕获的TypeError:无法读取未定义的属性“文档”

[英]D3.js : Uncaught TypeError: Cannot read property 'document' of undefined

d3.js启动时我遇到了一个非常奇怪的问题。 在d3.js脚本中,它一开始就尝试获取var d3_document = this.document; 但它弹出以下错误:

Uncaught TypeError: Cannot read property 'document' of undefined

在调试时, this.document返回undefined。

我正在使用yo webapp来生成项目。 它使用bower作为包管理器和gulp用于构建过程(使用babel用于ES2015功能)。

有趣的是,我用xampp测试了它,它工作正常!

我很感激一些建议!Thnx!

这听起来像是(Babel,很可能)插入"use strict"; 在D3脚本文件的开头或将其组合到另一个文件中,顶部是“use strict”。 这意味着this在全局范围内(或在一个叫不特定功能this )不再是全局对象的引用,这是undefined (而在“松散”模式或以所谓的无特定功能this值, this在全局范围内是全局对象,这也是通过全局变量`窗口1可访问的参考。)

您需要从Babel转换的脚本列表中删除您的d3.js包含它。 假设您正在使用普通的d3.js文件,它看起来像这样:

!function() {
  var d3 = {
    version: "3.5.16"
  };
  var d3_arraySlice = [].slice, d3_array = function(list) {
    return d3_arraySlice.call(list);
  };
  var d3_document = this.document;
  // ...
  // ...
  // ...lots of stuff here...
  // ...
  // ...
}();

这依赖于以松散模式运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM