1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <!DOCTYPE HTML> < html lang = "en-US" > < head > < meta charset = "UTF-8" > < title >利用 clipboardData 在网页中实现截屏粘贴的功能</ title > < style type = "text/css" > #box{ width:200px; height:200px; border:1px solid #ddd; } </ style > </ head > < body > < h1 >利用 clipboardData 在网页中实现截屏粘贴的功能</ h1 > < hr /> < div >< input type = "text" id = "testInput" placeholder = "截屏后粘贴到输入框中" size = "30" /></ div > < script type = "text/javascript" > (function(){ var imgReader = function( item ){ var blob = item.getAsFile(), reader = new FileReader(); reader.onload = function( e ){ var img = new Image(); img.src = e.target.result; document.body.appendChild( img ); }; reader.readAsDataURL( blob ); }; document.getElementById( 'testInput' ).addEventListener( 'paste', function( e ){ var clipboardData = e.clipboardData, i = 0, items, item, types; if( clipboardData ){ items = clipboardData.items; if( !items ){ return; } item = items[0]; types = clipboardData.types || []; for( ; i < types.length ; i++ ){ if( types[i] === 'Files' ){ item = items [i]; break; } } if( item && item.kind === 'file' && item.type.match(/^image\//i) ){ imgReader( item ); } } }); })(); </script> </ body > </ html > |