diff --git a/src/plugins/jquery.plugin.html2canvas.js b/src/plugins/jquery.plugin.html2canvas.js
index 061ce89ae..1cbf16e6b 100644
--- a/src/plugins/jquery.plugin.html2canvas.js
+++ b/src/plugins/jquery.plugin.html2canvas.js
@@ -14,23 +14,37 @@
options.elements = this;
options.flashcanvas = "../external/flashcanvas.min.js";
- html2canvas.logging = options && options.logging;
+ html2canvas.logging = options && options.logging;
options.complete = function(images){
- var queue = html2canvas.Parse(this[0], images, options),
- $canvas = $(html2canvas.Renderer(queue, options)),
- finishTime = new Date();
+ var queue = html2canvas.Parse(this[0], images, options),
+ $canvas = $(html2canvas.Renderer(queue, options)),
+ finishTime = new Date();
- if (options && options.profile && window.console && window.console.profileEnd) {
- console.profileEnd();
- }
- $canvas.css({ position: 'absolute', left: 0, top: 0 }).appendTo(document.body);
- $canvas.siblings().toggle();
+ if (options && options.profile && window.console && window.console.profileEnd) {
+ console.profileEnd();
+ }
+ $canvas.css({
+ position: 'absolute',
+ left: 0,
+ top: 0
+ }).appendTo(document.body);
+ $canvas.siblings().toggle();
- $(window).click(function(){
- $canvas.toggle().siblings().toggle();
- throwMessage("Canvas Render " + ($canvas.is(':visible') ? "visible" : "hidden"));
- });
- throwMessage('Screenshot created in '+ ((finishTime.getTime()-timer)) + " ms
",4000);
+ $(window).click(function(){
+ $canvas.toggle().siblings().toggle();
+ throwMessage("Canvas Render " + ($canvas.is(':visible') ? "visible" : "hidden"));
+ });
+ throwMessage('Screenshot created in '+ ((finishTime.getTime()-timer)) + " ms
",4000);
+
+ // test if canvas is read-able
+ try {
+ $canvas[0].toDataURL();
+ } catch(e) {
+ if ($canvas[0].nodeName.toLowerCase() === "canvas") {
+ // TODO, maybe add a bit less offensive way to present this, but still something that can easily be noticed
+ alert("Canvas is tainted, unable to read data");
+ }
+ }
};
html2canvas.Preload(this[0], options);