[转]js操作剪切板内容Excel多单元格数据到Html table对应单元格的复制
<script type="text/javascript"> //为每个text控件定义“获得输入焦点”和“失去焦点”时的样式 $("input[type='text']").focus(function(){ $(this).css({"background-color":"#FFFFE0"}); }).blur(function(){ $(this).css({"background-color":"white"}); }); //jquery中未对onpaste事件(即粘贴事件)进行封装,只好采用js原有的方式为每个text控件绑定onpaste事件 $.each($("input[type='text']"),function(obj,index){ this.onpaste = readClipboardData; }); //获取剪切板数据 函数 function getClipboard() { if (window.clipboardData) { return (window.clipboardData.getData('Text')); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); clip.getData(trans, clip.kGlobalClipboard); var str = new Object(); var len = new Object(); try { trans.getTransferData('text/unicode', str, len); } catch (error) { return null; } if (str) { if (Components.interfaces.nsISupportsWString) strstr = str.value.QueryInterface(Components.interfaces.nsISupportsWString); else if (Components.interfaces.nsISupportsString) strstr = str.value.QueryInterface(Components.interfaces.nsISupportsString); else str = null; } if (str) { return (str.data.substring(0, len.value / 2)); } } return null; } //读取剪切板数据,并将剪切板数据存放于各table cell中 function readClipboardData() { var str = getClipboard(); //获取剪切板数据 var len = str.split("\n");//获取行数 var tdIndex = $(this).parent().index(); //获取当前text控件的父元素td的索引 var trIndex = $(this).parent().parent().index(); //获取当前text控件的父元素的父元素tr的索引 var trStr; //从excle表格中复制的数据,最后一行为空行,因此无需对len数组中最后的元素进行处理 for(var i=0;i<len.length-1;i++){ //excel表格同一行的多个cell是以空格 分割的,此处以空格为单位对字符串做 拆分操作。。 trStr = len[i].split(/\s+/); for(var j=0;j<=trStr.length-1;j++){ //将excel中的一行数据存放在table中的一行cell中 $("tr:eq("+trIndex+")").children("td:eq("+(tdIndex+j)+")").children().val(trStr[j]); } trIndex ++ ; } return false; //防止onpaste事件起泡 } </script> </html>
相关推荐
STPace 2016-04-27
zjnig的信息仓库 2019-04-30
yuanlintufang 2016-04-27
hong 2015-12-28
yesbuy00 2014-07-23
辣m精彩 2014-01-22
niehanmin 2013-11-26
zwq 2013-04-11
WinerChopin 2012-06-05
lovehuayud 2012-02-22
别告诉我有Bug 2011-09-22
zhangpeng 2011-03-29
zwq 2011-03-05
xdyangxiaoromg 2019-05-09
heicxsudoblog 2019-05-08
移动开发与培训 2011-11-14