粘贴事件检测,完整代码如下:
<!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> 网友回复


