我想使用JavaScript保存HTML div元素的屏幕截图 .
但是div包含一个不会保存在屏幕截图中的跨源jpg .
结果JPG
https://jsfiddle.net/zdq4f547/
HTML
<div id="screenshot">
<img id="image" src="https://i.imgur.com/H7H4xXJ.jpg">
The Lord of the Rings
</div>
<p>
<button onclick="takeScreenShot()">Save</button>
</p>
CSS
#screenshot {
width: 300px;
height: 300px;
background: grey;
text-align: center;
display: table-cell;
vertical-align: middle;
}
#screenshot img {
max-height: 200px;
}
JavaScript
// Load Book Image
window.onload = function() {
var c = document.getElementById("screenshot");
var ctx = c.getContext("2d");
var img = document.getElementById("image");
img.crossOrigin = "Anonymous";
ctx.drawImage(img, 0, 0);
}
// Save Screenshot
var takeScreenShot = function() {
html2canvas(document.getElementById("screenshot"), {
onrendered: function (canvas) {
var tempcanvas=document.createElement('canvas');
tempcanvas.width=300;
tempcanvas.height=300;
var context=tempcanvas.getContext('2d');
context.drawImage(canvas,0,0,300,300);
var link=document.createElement("a");
link.href=tempcanvas.toDataURL('image/jpeg', 90);
link.download = 'screenshot.jpg';
link.click();
}
});
}
Scripts
https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
https://code.jquery.com/ui/1.12.1/jquery-ui.js
https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js