如何从客户端编码到base64的屏幕截图中查看用户端的图像

时间:2018-03-09 06:57:12

标签: javascript

这是点击的屏幕截图,图像编码为base64字符串,因为这是在客户端位置拍摄现在我想访问我的位置相同,所以我无法在其中看到图像

我正在使用的功能是单击按钮时生成() enter link description here此链接包含base64编码的字符串。

function screenshotPage() {
                urlsToAbsolute(document.images);
                urlsToAbsolute(document.querySelectorAll("link[rel='stylesheet']"));
                var screenshot = document.documentElement.cloneNode(true);
                var b = document.createElement('base');
                b.href = document.location.protocol + '//' + location.host;
                var head = screenshot.querySelector('head');
                head.insertBefore(b, head.firstChild);
                screenshot.style.pointerEvents = 'none';
                screenshot.style.overflow = 'hidden';
                screenshot.style.webkitUserSelect = 'none';
                screenshot.style.mozUserSelect = 'none';
                screenshot.style.msUserSelect = 'none';
                screenshot.style.oUserSelect = 'none';
                screenshot.style.userSelect = 'none';
                screenshot.dataset.scrollX = window.scrollX;
                screenshot.dataset.scrollY = window.scrollY;
                var script = document.createElement('script');
                script.textContent = '(' + addOnPageLoad_.toString() + ')();';
                screenshot.querySelector('body').appendChild(script);
                var blob = new Blob([screenshot.outerHTML], {
                    type: 'text/html'
                });
                var reader = new window.FileReader();
                reader.readAsDataURL(blob);
                reader.onloadend = function() {
                    base64data = reader.result;
                };
                if(base64data)
                {
                    data = base64data.substring(base64data.indexOf(",")+1, base64data.length);
                    text = data+space;
                    arr.push(text);
                }
                /*else{
                    alert("No image recieved /n Please press screenshot button");
                }*/
                return blob;
            }

        function addOnPageLoad_() {
            window.addEventListener('DOMContentLoaded', function (e) {
                var scrollX = document.documentElement.dataset.scrollX || 0;
                var scrollY = document.documentElement.dataset.scrollY || 0;
                window.scrollTo(scrollX, scrollY);
            });
        }

        function generate() {
            window.URL = window.URL || window.webkitURL;
            window.open(window.URL.createObjectURL(screenshotPage()));

        }
        exports.screenshotPage = screenshotPage;
        exports.generate = generate;




    })(window);

0 个答案:

没有答案
相关问题