js 判断剪切板内容是否为text_通过js巧妙获取剪切板的内容

前两天探究一个直接从Excel中复制数据到html中的实现方法。现在很多html编辑器都实现了表格的复制,但是如果不借助编辑器,如何将Excel中的数据复制到html中对应的table呢?

基本的思路就是获取到复制的内容,然后解析并填入相应的位置中。首先想到的是通过js获取剪切板的内容,可惜的是,在浏览器中通过js获取剪切板的内容是被限制的。另外的一种方法,是通过flash去获取,这种方法可以避开浏览器的安全限制,然而,flash这种正在逐渐被抛弃的技术,还是少用为妙。

上网搜了一下,找到了一种较为巧妙地方法。先上demo代码:

DEMO

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();

}

首先在body上注册了onkeydown事件,当用户按下ctrl+v键的时候,js将焦点转移到一个textarea标签上,这样,接下来的keyPress和keyUp事件就发生在textarea上了,自然而然的就相当于用户在textarea中复制了一下,然后,js再将焦点转移,从textarea中将值取到。这样就取到了剪贴板内文本数据了。

获得的Excel的文本数据,按照\t,\n就可以分割得到格子和行信息了。

简单而巧妙地方法,Mark之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值