在一次开发中遇到这样一个需求可以将粘贴板的图片粘贴到文本框中。当时我用的是textarea,但textarea不可以将图片显示出来,经过我一番百度发现我们可以通过HTML5中的contenteditable属性将div变成一个可以编辑的div。
contenteditable 属性规定是否可编辑元素的内容。
值 | 描述 |
---|---|
true | 规定可以编辑元素内容。 |
false | 规定无法编辑元素内容。 |
classname | 继承父元素的 contenteditable 属性。 |
window.addEventListener('load', function (e) {
document.body.onpaste = function (e) {
var items = e.clipboardData.items;
for (var i = 0; i < items.length; ++i) {
if (items[i].kind == 'file' &&
items[i].type.indexOf('image/') !== -1) {
var blob = items[i].getAsFile();
window.URL = window.URL || window.webkitURL;
var blobUrl = window.URL.createObjectURL(blob);
var img = document.createElement('img');
img.src = blobUrl;
var logBox = document.getElementById('textarea');
logBox.appendChild(img);
}
}
};
});