上下文菜单仅在使用ctrl v后才起作用。否则它只会返回空的剪贴板,这让我觉得需要一些初始化,或者只需关注/选择textarea。我错过什么了吗?谢谢
编辑
从excel文件复制并粘贴到Handsontable网格。如果我将粘贴与ctrl V一切都好。之后,粘贴与快捷方式和通过上下文菜单的工作预期。但是如果在初始化后,我会尝试使用我的contex菜单粘贴它将不粘贴任何东西。直到我通过快捷方式粘贴。
并使用ctrl v粘贴到handsontable,然后也可以使用关联菜单进行粘贴。在控制台上,您将看到
但若重新启动并尝试使用上下文菜单粘贴,它将不会粘贴任何内容,在控制台上您将看到
i、 e.一个元素而不是四个元素,要粘贴的值为“”。所以区别在于你没有使用快捷方式。那么这些准备好了吗?
attached(element) {
this._grid = this.initializeGrid($(element).find(".inputGrid")[0], this.options);
}
private initializeGrid(element, options) {
var config: any = {
data: options.data(),
colHeaders: options.columns.map(c => c['title'] || c.data),
columns: options.columns,
contextMenu: {
items: { "copy": { name: "copy Ctrl+C" }, "paste": { name: "paste Ctrl+V" }, "hsep1": "---------", "row_above": {}, "row_below": {}, "remove_row": {} }
},
contextMenuCopyPaste: true,
minSpareRows: 1,
rowHeaders: true,
allowInsertColumn: false,
allowInvalid: false,
allowRemoveColumn: false,
manualRowMove: true,
autoWrapRow: true,
fillHandle: false,
stretchH: 'all',
height: '100%'
};
var grid = new Handsontable(element, config);
var subscrRefresh = options.data.subscribe(() => {
grid.updateSettings({});
grid.render();
});
您可能缺少ZeroClipboard
的外部文件。只需下载并设置它们。以下是文档中的直接文本:
请注意,我们的复制/粘贴上下文菜单插件需要一些额外的准备工作:
>
zero剪贴板。js必须存在于服务器上,并包含在网站的
脚本
标记中。
ZeroClipboard.swf
也必须存在于您的服务器上要配置Handsontable以使用此插件,您需要向Hansontable实例添加一个ContextMenuCopyPati
配置项。
它可以设置为:
true
-如果为零。swf
文件与零剪贴板放在同一目录中。js
或