html2canvas 使用网络图片跨域问题

修改html2canvas 源码两处!!!

var imageLoadHandler = function imageLoadHandler(supportsDataImages) {
                return new Promise(function (resolve, reject) {
                    var img = new Image();
                    img.onload = function () {
                        return resolve(img);
                    };
                    //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous
                    if (!supportsDataImages || useCORS) {
                        // img.crossOrigin = 'anonymous';  // !!!此处修改
                        img.crossOrigin = '';
                    }

                    img.onerror = reject;

                    // img.src = src;  // !!!此处修改
                    if(src.indexOf('data:image')>-1){ // 图片地址后加时间 base64图片不变
                        // base64 图片操作
                        img.src = src;
                    }else{
                        //path 图片操作
                        img.src = src+"?"+new Date().getTime();
                    }

                    if (img.complete === true) {
                        // Inline XML images may fail to parse, throwing an Error later on
                        setTimeout(function () {
                            resolve(img);
                        }, 500);
                    }
                    if (_this4.options.imageTimeout) {
                        var timeout = _this4.options.imageTimeout;
                        setTimeout(function () {
                            return reject( true ? 'Timed out (' + timeout + 'ms) fetching ' + src.substring(0, 256) : '');
                        }, timeout);
                    }
                });
            };

猜你喜欢

转载自blog.csdn.net/qq_39785489/article/details/83106923