我所做的唯一改变是我升级到了新版本的handontable;所有其他代码都是一样的。在v15.1中正常工作,但v16.x或17.0都给我错误。不幸的是,我无法在fsfiddle中重现。即便是最基本的例子也不适合我:
document.addEventListener("DOMContentLoaded", function() {
var container1 = document.getElementById('example1');
var hot1;
hot1 = new Handsontable(container1, {});
});
<link type="text/css" rel="stylesheet" href="http://docs.handsontable.com/0.17.0/bower_components/handsontable/dist/handsontable.full.min.css">
<script src="http://docs.handsontable.com/0.17.0/bower_components/handsontable/dist/handsontable.full.js"></script>
<div id="example1"></div>
这应该显示一个空格(并在jsfiddle中),但在我的环境中我得到错误。有什么想法吗?
答案 0 :(得分:2)
我不知道你在做什么环境,但我能够在VisualForce中找出出现此错误的原因。
发生了同样的问题:handsontable从版本15升级到版本20,页面停止工作时出现类似错误:
TypeError: samples.has is not a function.
变量样本在handsontable.full.js中初始化为:var samples = new Map();并且变量Map被Salesforce main.js覆盖。
我已经通过handsontable.full.js用hotMap取代了Map,现在页面正在运行。
您的环境中看起来与来自不同包含的js文件的变量存在冲突。
我当然不得不改变handsontable.full.js但不能想到其他任何东西。