现在我的整个项目太大而无法复制和粘贴,但这是我现在正在做的基本细分:
$(document).ready(function(){
var canvas = $('#Canvas');
var data = {source: "images\pattern.png", repeat: "repeat"} ;
var pattern = canvas.createPattern(data); //Returns 'Null' at random
});
到目前为止我看过的事情:
它似乎有自己的想法,我无法弄清楚我做错了什么。任何人都知道我做错了什么?
-Edit1 -
现在通过Jcanvas源进行调试,我认为它与上下文有关。我有什么方法可以预加载画布上下文吗?
-Edit2 -
忘记我所说的关于背景的一切,我想我已经弄明白了。
//JCanvas source
[...]
else {
// Use URL if given to get the image
img = new Image();
img.crossOrigin = params.crossOrigin;
img.src = source; //<-- source is the url of my image ("images\pattern.png")
}
// Create pattern if already loaded
if (img.complete || imgCtx) {
onload(); //<-- When this runs, the image pops up perfectly fine
} else {
img.onload = onload(); //<-- This is what causes the problem,
//onload never seems to actually run
// Fix onload() bug in IE9
img.src = img.src;
}
img.onload事件应该在图像加载后直接发生,但似乎永远不会发生。