有点坚持这件事,这就是为什么需要帮助。我正在使用HTML5和JavaScript在图像上插入文本并创建一个带有文本的新图像。如果我手动添加文本,一切都很好,但是如果我试图将文本作为值传递给函数,它就不会发生。这是下面的功能代码
function draw_text(topt,bott){
var canvas = document.getElementById("e");
var context = canvas.getContext("2d");
var img = new Image();
img.src = "testimage.jpg";
img.onload = function()
{
context.drawImage(img, 0, 0);
draw_text();
};
var toptext = this.topt;
var bottomtext = this.bott;
context.font = "12px Arial";
context.fillStyle = "white";
context.strokeStyle = 'black';
context.fillText(toptext, (img.width-context.measureText(toptext).width)/2, 40);
context.strokeText(toptext, (img.width-context.measureText(toptext).width)/2, 40);
context.fillText(bottomtext, (img.width-context.measureText(bottomtext).width)/2, 350);
};
我正在通过
调用此功能draw_text('Text 1','Text 2');
但是我要么根本看不到画布,要么附带文字'Undefined'。我究竟做错了什么?顺便说一句,如果重要的是我在codeigniter视图文件中执行此代码。
答案 0 :(得分:3)
您没有正确使用'this'。
替换:
var toptext = this.topt;
var bottomtext = this.bott;
使用:
var toptext = topt;
var bottomtext = bott;
***另外,我刚刚注意到你在draw_text的定义中没有参数的“draw_text()”递归调用,这也是一个问题。