复制/粘贴功能在Chrome中正常运行,在Safari中效果不佳。我在Mac OS(Maverick)上运行。该代码使用Handsontable 0.11.4和ZeroClipboard插件。
使用上下文菜单在网格内复制和粘贴。例如:
使用键组合进行剪切或复制的操作以及用于粘贴的上下文菜单。例如:
调试此问题证明是棘手的,因为当我在某些代码段中设置断点时,中断行为会阻止"粘贴"甚至在Chrome中工作的功能。有一些关于操作时间的事情会使代码难以调试。我做的一个观察是在函数中(第6938行)
CopyPasteClass.prototype.triggerPaste = function (event, str) {
var that = this;
if (that.pasteCallbacks) {
setTimeout(function () {
var val = (str || that.elTextarea.value).replace(/\n$/, ''); //remove trailing newline
for (var i = 0, ilen = that.pasteCallbacks.length; i < ilen; i++) {
that.pasteCallbacks[i](val, event);
}
}, 50);
}
};
当我使用Cmd-P在Safari中粘贴并清空时,Chrome中that.elTextarea.value
的值是正确的。同样,当我从Excel粘贴时,它在Chrome中是正确的,而当我这样做时,它在Safari中为空。
桌子在Safari中不起作用的问题本身并不是问题。问题是,在我的公司内部网(在生产环境中),所有浏览器(Windows中的Chrome和Firefox)都像Safari在Mac上的行为一样。我无法将从Excel或文本编辑器复制的内容粘贴到Handsontable网格中。即使我从网格的另一个区域粘贴,也无法使用Ctrl-P进行粘贴。使用网格上下文菜单的“复制”和“粘贴”功能可以正常工作。
浏览器中网格行为的差异是什么原因?