您好,这里涉及到了两个剪切板,一个是操作系统系统剪切板,一个是SpreadJS自身剪切板。两者相关独立。
且如果使用Ctrl+C复制了数据,会在您电脑系统的剪贴板中加入值和样式的数据,用Ctrl + V 在Spread JS中进行粘贴操作时,系统会把这些数据给浏览器,这时SpreadJS会得到这些数据并执行粘贴操作。如果您直接使用右键的粘贴操作,这时需要网页执行JS来主动访问系统的剪贴板,而JS语言并没有这个权限,
因此无法实现外部复制数据后在SpreadJS表格中通过右键或代码进行粘贴这种操作。
如下动图所示:
通过ctrl+c复制数据后,在SpreadJS中通过右键菜单的粘贴选项 粘贴不了值,如果用ctrl+v是可以粘贴值的。
这个也解释了第三步为什么ctrl+v粘贴的不是第二步通过右键菜单复制的值,而是第一步通过ctrl+c复制的值。
至于第四步为什么右键粘贴的值是空的,这边猜测可能原因是由于第三步ctrl+v获取系统剪切板数据,冲掉了SpreadJS剪切板的数据。
这个可以通过如下步骤来验证下:在您的步骤基础上,不执行第三步操作,即ctrl+c复制数据,右键复制数据,右键粘贴数据,此时右键粘贴数据的值是第二步右键复制的数据。
|