|
@@ -6235,24 +6235,9 @@
|
|
|
|
|
|
var screenshotBuf = [];
|
|
|
var totalFloatWindowsLeft = 0;
|
|
|
- var baseCanvas = null;
|
|
|
function screenshot(){
|
|
|
totalFloatWindowsLeft = $(".floatWindow").length;
|
|
|
- baseCanvas = null;
|
|
|
screenshotBuf = [];
|
|
|
- //Get the base canvas
|
|
|
-
|
|
|
- html2canvas(document.querySelector("body")).then(basecanvas => {
|
|
|
- //Set the base canvas
|
|
|
- baseCanvas = basecanvas;
|
|
|
-
|
|
|
- //Check if the other iframe screenshot done
|
|
|
- if (totalFloatWindowsLeft == 0){
|
|
|
- mergeScreenshotCanvas();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
//Get a screenshot from each floatWindow
|
|
|
$(".floatWindow").each(function(){
|
|
|
let contentWindow = $(this).find("iframe")[0].contentWindow;
|
|
@@ -6263,7 +6248,7 @@
|
|
|
screenshotBuf.push([thisWindowId,offsets,capture]);
|
|
|
totalFloatWindowsLeft--;
|
|
|
|
|
|
- if (totalFloatWindowsLeft == 0 && baseCanvas != null){
|
|
|
+ if (totalFloatWindowsLeft == 0){
|
|
|
//Merge the canvas
|
|
|
mergeScreenshotCanvas();
|
|
|
}
|
|
@@ -6277,23 +6262,34 @@
|
|
|
|
|
|
function mergeScreenshotCanvas(){
|
|
|
//Merge the screenshots
|
|
|
- var baseCtx=baseCanvas.getContext('2d');
|
|
|
for (var i = 0; i < screenshotBuf.length; i++){
|
|
|
var thisWindowID = screenshotBuf[i][0];
|
|
|
var thisOffsets = screenshotBuf[i][1];
|
|
|
var thisCanvas = screenshotBuf[i][2];
|
|
|
- var thisCtx = thisCanvas.getContext('2d');
|
|
|
+ var imgLink = thisCanvas.toDataURL();
|
|
|
|
|
|
- //Draw thisCtx onto baseCtx at offsets thisOffsets
|
|
|
- baseCtx.drawImage(thisCanvas, thisOffsets[0], thisOffsets[1]);
|
|
|
+ //Overlay the iframe with image of screenshot
|
|
|
+ let targetFw = getFloatWindowByID(thisWindowID);
|
|
|
+ $(targetFw).find(".iframecover").append(`<img src="${imgLink}"/>`);
|
|
|
+ $(targetFw).find(".iframecover").show();
|
|
|
}
|
|
|
|
|
|
- downloadCanvas(baseCanvas);
|
|
|
+ html2canvas(document.querySelector("body")).then(basecanvas => {
|
|
|
+ downloadCanvas(basecanvas);
|
|
|
|
|
|
- //Reset paramters
|
|
|
- totalFloatWindowsLeft = 0;
|
|
|
- baseCanvas = null;
|
|
|
- screenshotBuf = [];
|
|
|
+ //Clear up the mess
|
|
|
+ screenshotBuf.forEach(function(entry){
|
|
|
+ let targetFw = getFloatWindowByID(entry[0]);
|
|
|
+ $(targetFw).find(".iframecover").html("");
|
|
|
+ $(targetFw).find(".iframecover").hide();
|
|
|
+ });
|
|
|
+
|
|
|
+ //Reset paramters
|
|
|
+ totalFloatWindowsLeft = 0;
|
|
|
+ screenshotBuf = [];
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|