2015-11-06 128 views
1

上下文菜单仅在使用ctrl + v后才起作用。否则,它只是返回空剪贴板,这使我认为需要一些初始化或只是在textarea上进行焦点/选择。我错过了什么吗?谢谢。Handsontable上下文菜单粘贴不能第一次工作

编辑

从Excel文件并粘贴到Handsontable电网复制。如果我用ctrl + V粘贴,一切都可以。之后,粘贴快捷方式并通过上下文菜单按预期工作。但如果初始化后我会尝试使用我的菜单粘贴它将不会粘贴任何东西。直到我通过快捷方式粘贴。

EDIT 2 http://jsfiddle.net/sauliuslx/ygfnR/341/ 如果您从Excel中复制水木清华这样的 copying from excel

并粘贴使用Ctrl + V,那么你就可以用粘贴上下文菜单handsontable了。在控制台中,您会看到

enter image description here

不过,如果你重新启动,并尝试与上下文菜单将不信邪,在控制台上粘贴贴,你会看到

enter image description here

即一个元件而不是四个,粘贴的价值是“”。所以区别在于你没有使用快捷方式。所以这些准备好了吗?

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(); 
    }); 
+0

能告诉你我们有些代码?从哪里复制什么? – ZekeDroid

+0

@ZekeDroid我添加了初始化代码。谢谢。 – Saulius

+0

我似乎无法重新创建它。你能发布一个错误发生的jsfiddle吗?你有没有机会使用IE浏览器? – ZekeDroid

回答

1

您可能会缺少的是外部文件到ZeroClipboard。只需下载并设置它们。下面是从文档的直接文本:

请注意,我们的复制/粘贴上下文菜单插件需要一些额外的准备:

  1. ZeroClipboard.js必须存在服务器上,并包含在你的网站的script标签。

  2. ZeroClipboard.swf也必须出现在你的服务器 要配置Handsontable使用这个插件,你需要一个contextMenuCopyPaste配置项添加到您的Hansontable实例。

它可以设置为:

  • true - 如果ZeroClipboard.swf文件放在同一个目录中ZeroClipboard.js,或
  • {swfPath: [path to the swf file]}
+0

@ ZakeDroid感谢您的回答。这似乎是合乎逻辑的。我在jsfiddle http://jsfiddle.net/ygfnR/345/上尝试了这个解决方案。因为像jsfiddle这样的框架网站上的swf限制,它将无法正常工作我试过这样。 http://jsfiddle.net/sauliuslx/k9psq1da/117/show/ http://jsfiddle.net/sauliuslx/k9psq1da/117 它可能应该工作。但事实并非如此。我也在我的网站上尝试过,但我也没有成功。 – Saulius

+0

嗯,那很奇怪。此时您应该将其作为github问题页面中的错误进行归档,因为它没有任何意义。您可能仍然在弄错路径或没有正确加载zeroclipboard。 – ZekeDroid

+0

我在Chrome调试器网络上看到这两个文件(js和swf)。没有错误。我猜铬可能会抑制闪光灯。但是,很奇怪,我没有发现任何抱怨。 – Saulius