HTML5 Canvas文本未显示

时间:2013-12-05 22:57:54

标签: javascript html5 canvas

我试图通过在文本框中输入消息来在画布上显示文本,但它没有出现。

这是我的代码:

<html>
    <body>
        <canvas id="myCanvas" width="600" height="400"></canvas>
        <input type="text" name="fname" size="50" id="form_val">
        <button onclick="clicked()">Submit</button>

        <script type="text/javascript">
            function clicked () {
                var x = document.getElementById("form_val");
                return x.value;
            }

            var c = document.getElementById("myCanvas");
            var ctx = c.getContext("2d");
            ctx.font = "25px Verdana";
            ctx.fillText(clicked(), 250, 250);
        </script>       
    </body>
</html>

3 个答案:

答案 0 :(得分:4)

你的函数外部的代码会被立即触发,把它放在函数内部,以便在它需要时调用它(因为它当前就会调用它。当你单击按钮时,它会将输入值返回给onclick方法。试试这个:

function clicked(){
   var x=document.getElementById("form_val");
   var c=document.getElementById("myCanvas");
   var ctx=c.getContext("2d");
   ctx.font="25px Verdana";
   ctx.fillText(x.value,250,250);
}

答案 1 :(得分:1)

<强> HTML:

<canvas id="myCanvas" width="600" height="400"></canvas>

<input type="text" name="fname" size="50" id="form_val">
<button id='submit'>Submit</button>

<强> JavaScript的:

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");
ctx.font="25px Verdana";

document.getElementById('submit').addEventListener('click', clicked);

function clicked(){
 var x=document.getElementById("form_val");
 // Create the text when the button is clicked
 ctx.fillText(x.value,250,250);
}

Fiddle

答案 2 :(得分:0)

我相信你想做这样的事情

<script type="text/javascript">
function clicked(){
 var x=document.getElementById("form_val");

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="25px Verdana";
ctx.fillText(x.value,250,250);
}

这样,单击按钮时将填充文本。注意:我没有测试过代码,但是你可能会得到图片