在我的一个项目上工作时,我刚刚意识到我在使用canvas
and显示由图像渲染的文本时遇到了问题JQuery
。
代码:
//get values
var current = $(".activeText a div").attr('id');
//get font family
var fFamily = $(".activeText a .fontType-cont").val();
// default remove old
$(".customize-Container #draggable").remove();
//create a canvas for image converting
$(".customize-Container").append("<div id='draggable'><canvas id='"+current+"'></canvas></div>");
//create canvas
var canvas = document.getElementById(current),
ctx = canvas.getContext('2d'),
img = document.createElement('img');
//draw it
img.onload = drawSmall;
img.src = $(".activeGColor").find('img').attr('src');
function drawSmall() {
var text = $("#fontEnter").val();
//define new font size
howMuch = startFontSize - howMuch;
//define var with new font size
startFontSize = howMuch;
//define text font size and family
ctx.font = howMuch + 'px ' + fFamily;
//fill with the text
ctx.fillText(text, 10, 100);
//draw text
ctx.globalCompositeOperation = 'source-in';
ctx.drawImage(img, 10, 20, 500, 100);
}
这就是发生的事情,这是 re sizer 中的一个函数。此特定功能可减小文本大小。现在发生的事情是在我使用类似的代码来显示文本并且效果很好之前。现在,一旦选择了此功能,文本就会消失并且不会完成其过程,从而使画布保持空白。
我曾经alert()
看到它在哪里停止,它似乎在img.onload = drawSmall;
没有进入drawSmall()
功能的情况下停止。
这在 Chrome 和 IE 中完美运行(<--哇,对吗?)让我知道你的建议。
大卫
更新:
刚刚意识到 Firefox 告诉我这个:
[14:08:46.456] ReferenceError: drawSmall is not defined @ ../wp-content/themes/twentytwelve/js/jquery-latest.min.js:297