2015-11-06 60 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