JavaScript, передавая значение в функцию - PullRequest
2 голосов
/ 22 августа 2010

Вид застрял с этой вещью, поэтому, пожалуйста, нужна помощь.Я использую 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 Ответ

3 голосов
/ 22 августа 2010

Вы не используете 'this' правильно.

Замените:

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

на:

var toptext =  topt;
var bottomtext =  bott;

*** Также я только что заметил, что у вас естьрекурсивный вызов метода draw_text () без параметров в определении draw_text, что также является проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...