作家
登录

JS 巧妙获取剪贴板数据 Excel数据的粘贴

作者: 来源:www.28hudong.com 2013-03-30 02:30:08 阅读 我要评论

另外的方法就是用flash了,它可以避开浏览器的安全限制,但是system类中只有set的方法,另外的clipboard类中倒是能访问到,但是似乎需要flash10的版本支持。网上找了一圈,没啥发现。终于想到去看看google sheet是怎么干的。 发现google sheet实现了excel的纯文本的多数据格粘贴,没有安全限制的需要,没有使用flash。可能很多人都知道这种方法了,反正我一开始很惊讶的,但是无奈,google的js文件是处理过的,看起来太累了。然后又去找ZOHO sheet,它的js文件只简单处理了一下,能debug,能看。 原来,其在body上注册了onkeydown事件,当用户按下ctrl+v键的时候,js将焦点转移到一个textarea标签上,这样,接下来的keyPress和keyUp事件就发生在textarea上了,自然而然的就相当于用户在textarea中复制了一下,然后,js再将焦点转移,从textarea中将值取到。这样就取到了剪贴板内文本数据了。 下面是一个模仿ZOHO sheet实现的小例子。 复制代码 代码如下:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript"><!-- function cellkeydown(event) { if (event.ctrlKey && event.keyCode == 86) { var ss = document.getElementById("textArea"); ss.focus(); ss.select(); // 等50毫秒,keyPress事件发生了再去处理数据 setTimeout("dealwithData()",50); } } function dealwithData(event) { var ss = document.getElementById("textArea"); alert(ss.value); ss.blur(); } // --></script> </head> <body onkeydown="return cellkeydown(event)"> <div> <textarea id="textArea">获得的Excel的文本数据,按照t,n就可以分割得到格子和行信息了。但这样只能得到简单的纯文本的excel值,格子的样式都弄不到。但我发现一个方法,当向iframe的document中复制的时候(就是在线编辑器的实现方式),这样能出现一些样式信息,IE中特别全,估计是因为自己家的产品自己能解析的缘故,FF和Chrome就只能得到行号列宽等一些简单的属性。不知道谁有方法能得到比较全的信息。

  推荐阅读

  类似新浪网的 弹出视频功能实现代码

javascript代码,一般放到 head中复制代码 代码如下:<Script language="javascript"> <!-- window.onload = getMsg; window.onresize = resizeDiv; window.onerror = function(){} //短信提示使用(asilas添加) var>>>详细阅读


本文标题:JS 巧妙获取剪贴板数据 Excel数据的粘贴

地址:http://www.17bianji.com/kaifa2/JS/28476.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)