【发布时间】:2016-02-08 04:53:45
【问题描述】:
上下文菜单仅在使用 ctrl+v 后才有效。否则它只会返回空剪贴板,这让我认为需要一些初始化,或者只是将焦点/选择放在 textarea 上。我错过了什么吗?谢谢。
编辑
从 excel 文件复制并粘贴到 Handsontable 网格。如果我用 ctrl+V 粘贴,一切正常。之后,使用快捷方式和通过上下文菜单粘贴都按预期工作。但是如果在初始化之后我会尝试使用我的上下文菜单粘贴它不会粘贴任何东西。直到我通过快捷方式粘贴。
编辑 2 http://jsfiddle.net/sauliuslx/ygfnR/341/ 如果你像那样从 excel 中复制
然后用 ctrl+v 粘贴到handsontable 然后你也可以用上下文菜单粘贴。在控制台上你会看到
但是,如果您重新启动并尝试使用上下文菜单粘贴,它将不会粘贴任何内容,并且在控制台上您会看到
即一个元素而不是四个元素,要粘贴的值是“”。所以不同的是你没有使用快捷方式。所以这些都准备好了?
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();
});
【问题讨论】:
-
你能给我们看一些代码吗?从哪里复制什么?
-
@ZekeDroid 我添加了初始化代码。谢谢。
-
我似乎无法重新创建它。你能在发生错误的地方发布一个 jsfiddle 吗?你有机会使用 IE 吗?
-
@ZekeDroid 我添加了 jsfiddle。我使用 Chrome 46。谢谢。