Search code examples
javascripthtmlcssbuttonclick

How do I insert the text inside the canvas using the buttons onclick function?


As mentioned in the title I want to be able to insert the text from the textbox to inside the canvas using the buttons onclick function. Now have in mind I'm a newbie at this so there may be errors all over the place.

function startGame() {
    myGameArea.start();
}
    
var myGameArea = {
    canvas : document.createElement("canvas"),
    start : function() {
        this.canvas.width = 480;
        this.canvas.height = 270;
        this.context = this.canvas.getContext("2d");
        this.gravity = 0.05;
        this.gravitySpeed = 0;
        document.body.insertBefore(this.canvas, document.body.childNodes[0]);
            
        }
}
    
function myFunction() {
    
}
canvas { 
  border: 1px solid #d3d3d3;
  background-color: #f1f1f1;
}
<body onload="startGame()">
<input type="text" name="Box" id="Box" value="" placeholder="Write whatever"/>
<button onclick="myFunction()">Submit</button>
</body>


Solution

  • @sosa123, Check below solution and let me know is this solution works for you or not?

    <!DOCTYPE html>
    <html>
    <head>
    <title>Page Title</title>
    <script>
    function startGame() {
        myGameArea.start();
    }
    
    var myGameArea = {
        canvas : createElementOnDom('CANVAS','myCANVAS'),
        start : function() {
            this.canvas.width = 480;
            this.canvas.height = 270;
            this.context = this.canvas.getContext("2d");
            this.gravity = 0.05;
            this.gravitySpeed = 0;
            document.body.insertBefore(this.canvas,document.body.childNodes[0]);
    
            }
    }
    
        function createElementOnDom (type,id) {
       var element=document.createElement(type);
       element.id=id;
       return element;
    }
    function myFunction() {
        var canvas = document.getElementById("myCANVAS");
    var ctx = canvas.getContext("2d");
    ctx.font = "30px Arial";
    ctx.fillText(document.getElementById("Box").value,10,50);
    }
    </script>
    <style>
    canvas { 
      border: 1px solid #d3d3d3;
      background-color: #f1f1f1;
    }
    </style>
    </head>
    <body>
    <body onload="startGame()">
    <input type="text" name="Box" id="Box" value="" placeholder="Write whatever"/>
    <button onclick="myFunction()">Submit</button>
    </body>
    </body>
    </html>