Javascript Handsontable - 未捕获的类型错误:无法读取未定义的属性“insertBefore”

Posted

技术标签:

【中文标题】Javascript Handsontable - 未捕获的类型错误:无法读取未定义的属性“insertBefore”【英文标题】:Javascript Handsontable - Uncaught TypeError: Cannot read property 'insertBefore' of undefined 【发布时间】:2016-08-06 01:27:24 【问题描述】:

我正在使用可动手做的库来创建整洁的表格。 我从字面上复制了教程,但控制台(Web 开发人员控制台)给了我以下错误:

Uncaught TypeError: Cannot read property 'insertBefore' of undefined            
handsontable.full.js:4471 

我在<head> 标签中正确链接了 .css 和 .js 文件。

我的 javascript 看起来像这样:

var data = [
    ["", "Ford", "Volvo", "Toyota", "Honda"],
    ["2016", 10, 11, 12, 13],
    ["2017", 20, 11, 14, 13],
    ["2018", 30, 15, 12, 13]
];

var container = document.getElementById('temp');
var hot = new Handsontable(container, 
    data: data,
    rowHeaders: true,
    colHeaders: true,
    dropdownMenu: true
);

html

<div id="temp"></div>

handsontable.full.js 中的第 4471 行是

rootElement.insertBefore(this.container, rootElement.firstChild);

表格没有显示,控制台中的错误是我的全部。

【问题讨论】:

我的猜测是您正在尝试在页面上存在之前读取该元素。调用代码 onload 或将代码放在页面上的元素之后。 【参考方案1】:

看起来像你的

document.getElementById('temp');

返回未定义。

确保Handsontable 正在构造时容器元素仍然存在。

【讨论】:

你是对的。我正在动态加载我的内容,并且在加载内容之前调用了脚本,因此 div 不存在。【参考方案2】:

您的rootElement 引用未定义。请检查此变量在哪里定义以及分配给什么。

【讨论】:

以上是关于Javascript Handsontable - 未捕获的类型错误:无法读取未定义的属性“insertBefore”的主要内容,如果未能解决你的问题,请参考以下文章

从 Django POST 请求中获取表格并在 handsontable 中显示(在 javascript 中读取值)

Javascript Handsontable - 未捕获的类型错误:无法读取未定义的属性“insertBefore”

Handsontable 给出了意外的列数

Handsontable数据到sql数据库

Handsontable:jquery 合并标题,水平滚动错误

使用 Handsontable 时出现重复的标题