JavaScript,将值传递给函数

时间:2010-08-22 00:02:30

标签: javascript html5

有点坚持这件事,这就是为什么需要帮助。我正在使用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视图文件中执行此代码。

1 个答案:

答案 0 :(得分:3)

您没有正确使用'this'。

替换:

var toptext =  this.topt;
var bottomtext =  this.bott;

使用:

var toptext =  topt;
var bottomtext =  bott;

***另外,我刚刚注意到你在draw_text的定义中没有参数的“draw_text()”递归调用,这也是一个问题。