mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
33 lines
1.5 KiB
JavaScript
33 lines
1.5 KiB
JavaScript
var utils = require('./utils');
|
|
var Promise = require('./Promise');
|
|
var getBounds = utils.getBounds;
|
|
var loadUrlDocument = require('./proxy').loadUrlDocument;
|
|
|
|
function FrameContainer(container, sameOrigin, options) {
|
|
this.image = null;
|
|
this.src = container;
|
|
var self = this;
|
|
var bounds = getBounds(container);
|
|
this.promise = (!sameOrigin ? this.proxyLoad(options.proxy, bounds, options) : new Promise(function(resolve) {
|
|
if (container.contentWindow.document.URL === "about:blank" || container.contentWindow.document.documentElement == null) {
|
|
container.contentWindow.onload = container.onload = function() {
|
|
resolve(container);
|
|
};
|
|
} else {
|
|
resolve(container);
|
|
}
|
|
})).then(function(container) {
|
|
var html2canvas = require('./core');
|
|
return html2canvas(container.contentWindow.document.documentElement, {type: 'view', width: container.width, height: container.height, proxy: options.proxy, javascriptEnabled: options.javascriptEnabled, removeContainer: options.removeContainer, allowTaint: options.allowTaint, imageTimeout: options.imageTimeout / 2});
|
|
}).then(function(canvas) {
|
|
return self.image = canvas;
|
|
});
|
|
}
|
|
|
|
FrameContainer.prototype.proxyLoad = function(proxy, bounds, options) {
|
|
var container = this.src;
|
|
return loadUrlDocument(container.src, proxy, container.ownerDocument, bounds.width, bounds.height, options);
|
|
};
|
|
|
|
module.exports = FrameContainer;
|