vue监听粘贴事件
paste事件就是粘贴事件
需要通过clipboardData获得粘贴的内容
<table> <tr> <td @paste="pasteMe($event)"></td> </tr> </table> pasteMe() { //获得粘贴的文字 let self = this; var data = null; var clipboardData = e.clipboardData; // IE if (!clipboardData) { //chrome clipboardData = e.originalEvent.clipboardData; } data = clipboardData.getData("Text"); } //如果是要获得粘贴excel的内容,需要把粘贴的内容转换成二维数组 pasteExcel() { let self = this; var data = null; var clipboardData = e.clipboardData; // IE if (!clipboardData) { //chrome clipboardData = e.originalEvent.clipboardData; } data = clipboardData.getData("Text"); var rowStrArray = data.split("\n"); var rows = []; for (var i = 0; i < rowStrArray.length; i++) { var row = []; var tdStrArray = rowStrArray[i].split("\t"); for (var j = 0; j < tdStrArray.length; j++) { row.push(tdStrArray[j]); } rows.push(row); } //rows就是获得复制excel的二维数组 }
如果使用了element等UI框架,需要在el-input中使用粘贴事件,@paste.native
<el-input size="mini" v-model="value" placeholder="0.00" @paste.native="pasteMe" ></el-input>