Handsontable official documentationのコードをJSFiddleにコピーしました。これは0.34.5の手に負えません。Handsontable自動保存 - ajaxが定義されていません
クロムコンソールにエラーが表示されます。 "ajaxが定義されていません"。次の、handsontable.full.min.jsとhandsontable.full.min.css
があらかじめロードされたHTMLとして
コード:
<div class="ajax-container">
<div class="controls">
<button name="load" id="load" class="intext-btn">Load</button>
<button name="save" id="save" class="intext-btn">Save</button>
<label>
<input type="checkbox" name="autosave" id="autosave" checked="checked" autocomplete="off">Autosave</label>
</div>
<pre id="example1console" class="console">Click "Load" to load data from server</pre>
<div id="example1" class="hot handsontable"></div>
</div>
スクリプト:
var
$$ = function(id) {
return document.getElementById(id);
},
container = $$('example1'),
exampleConsole = $$('example1console'),
autosave = $$('autosave'),
load = $$('load'),
save = $$('save'),
autosaveNotification,
hot;
hot = new Handsontable(container, {
startRows: 8,
startCols: 6,
rowHeaders: true,
colHeaders: true,
afterChange: function(change, source) {
if (source === 'loadData') {
return; //don't save this change
}
if (!autosave.checked) {
return;
}
clearTimeout(autosaveNotification);
ajax('scripts/json/save.json', 'GET', JSON.stringify({
data: change
}), function(data) {
exampleConsole.innerText = 'Autosaved (' + change.length + ' ' + 'cell' + (change.length > 1 ? 's' : '') + ')';
autosaveNotification = setTimeout(function() {
exampleConsole.innerText = 'Changes will be autosaved';
}, 1000);
});
}
});
Handsontable.dom.addEvent(load, 'click', function() {
ajax('scripts/json/load.json', 'GET', '', function(res) {
var data = JSON.parse(res.response);
hot.loadData(data.data);
exampleConsole.innerText = 'Data loaded';
});
});
Handsontable.dom.addEvent(save, 'click', function() {
// save all cell's data
ajax('scripts/json/save.json', 'GET', JSON.stringify({
data: hot.getData()
}), function(res) {
var response = JSON.parse(res.response);
if (response.result === 'ok') {
exampleConsole.innerText = 'Data saved';
} else {
exampleConsole.innerText = 'Save error';
}
});
});
Handsontable.dom.addEvent(autosave, 'click', function() {
if (autosave.checked) {
exampleConsole.innerText = 'Changes will be autosaved';
} else {
exampleConsole.innerText = 'Changes will not be autosaved';
}
});
* "ajaxは定義されていません" *あなたにとってはっきりしないものは何ですか?たぶん役立つでしょう:あなたが使っている 'ajax'関数は*定義されていません*。適切なAJAXリクエストユーティリティを提供する必要があります。まだそれが難しい場合:GoogleのJavaScriptは、ajaxリクエストを作成します。さらに簡単にするには、devtoolsを開き、この関数のコードを30行コピーします。 – dfsq
@dfsqあなたは追加のライブラリをロードする必要があると言っていますか?もしそうなら、特定の図書館が必要ですか?公式文書には何かが必要であるとは言われていない。 –
ライブラリーをロードする必要はありません。ウェブサイトで使用しているものをコピーするだけで、コードは30行です。しかし、望むなら別の図書館を使うこともできます。 – dfsq