js实现图片复制粘贴

这段代码演示了如何在浏览器环境中实现图像的复制和粘贴功能。通过监听`onpaste`事件,从剪贴板读取图片文件,并创建新的``元素插入到可编辑的`div`区域内。该示例适用于Chrome浏览器。
摘要由CSDN通过智能技术生成
<html>
	<head>
		<title>test chrome paste image</title>
		<style>
			#non-editable img{
				width: 300px;
			}
			#editable {
				margin-top: 20px;
				width: 400px;
				height: 300px;
				border: 1px dashed blue;
			}
			
			#editable img{
				width: 300px;
			}
		</style>
	</head>
	<body>
		<h2>在浏览器中测试图像粘贴</h2>
		<div id="non-editable">
			<p>复制下面的img,然后粘贴到下面的区域</p>
			<img
				src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1594274150060&di=2aa0fa4d85cb448430e9dcc27db1d9e9&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg" />
		</div>
		<div id="editable" contenteditable="true">
			<p>这是一个可编辑的div区域</p>
			<p>将图像粘贴到这里。</p>
		</div>
	</body>
</html>
<script type="text/javascript">
	window.onload = function() {
		function paste_img(e) {
			if (e.clipboardData.items) {
				// google-chrome 
				console.log('support clipboard Data items(谷歌浏览器 ...)');
				
				ele = e.clipboardData.items
				for (var i = 0; i < ele.length; ++i) {
					if (ele[i].kind == 'file' && ele[i].type.indexOf('image/') !== -1) {
						var blob = ele[i].getAsFile();
						window.URL = window.URL || window.webkitURL;
						var blobUrl = window.URL.createObjectURL(blob);
						console.log(blobUrl);

						var new_img = document.createElement('img');
						new_img.setAttribute('src', blobUrl);
						var new_img_intro = document.createElement('p');
						new_img_intro.innerHTML =
							'粘贴的img url: <br /><a target="_blank" href="' + blobUrl +
							'">' + blobUrl + '</a>';

						document.getElementById('editable').appendChild(new_img);
						document.getElementById('editable').appendChild(new_img_intro);
					}

				}
			} else {
				alert('non-chrome');
			}
		}
		document.getElementById('editable').onpaste = function() {
			paste_img(event);
			return false;
		};
	}
</script>

以上代码,复制粘贴即可运行。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值