粘贴事件检测,完整代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue 2 Input Paste Image with File Type</title> <style> body { margin: 0; padding: 20px; font-family: Arial, sans-serif; } .input-container { margin-bottom: 20px; } .image-preview { max-width: 100%; margin-top: 20px; } </style> </head> <body> <div id="app"> <div class="input-container"> <input type="text" @paste="handlePaste" placeholder="粘贴图片到这里"> </div> <div v-if="base64Image"> <p>文件类型: {{ fileType }}</p> <p>Base64 编码的图片:</p> <img :src="base64Image" alt="Pasted Image" class="image-preview"> </div> </div> <!-- 引入 Vue 2 CDN --> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue@2.6.1-dev.js"></script> <script> new Vue({ el: '#app', data() { return { base64Image: null, fileType: '' }; }, methods: { handlePaste(event) { const items = event.clipboardData.items; for (let i = 0; i < items.length; i++) { const item = items[i]; if (item.type.indexOf('image') !== -1) { const file = item.getAsFile(); this.fileType = file.type; // 获取文件类型 const reader = new FileReader(); reader.onload = (e) => { this.base64Image = e.target.result; }; reader.readAsDataURL(file); break; } } } } }); </script> </body> </html>
网友回复