JavaScript Image drawn to HTML5 Canvas does not display correctly on first load

I'm following a tutorial on importing and displaying images on an HTML5 canvas. Everything works fine, until I try to change the image itself. For example, I'll have a yellow circle as my image, and the script works fine. But if I open the image itself in Paint and change the circle to red, and refresh the page, the circle won't show up until I click or refresh again a second time manually. Here is the code snippet I'm using:

var topMap = new Image();
topMap.src = "topMap.png";

function drawMap() {
    context.clearRect(0, 0, WIDTH, HEIGHT);
    context.drawImage(topMap, 0, 0);
}

function init() {
    drawMap();
}

init();
Answer:1

This is an odd problem. I have a client object that I am building up using Crockford-esque public/private members: var client = function() { var that, remote_data, other_data; // add public ...

This is an odd problem. I have a client object that I am building up using Crockford-esque public/private members: var client = function() { var that, remote_data, other_data; // add public ...

  1. wait return function javascript
  2. wait return function javascript callback

In a very simple jQuery modal, I close the modal by clicking on CLOSE as $('#close').click(function(e) { e.preventDefault(); $('#overlay, #alertModalOuter').fadeOut(400, function() { $(this)....

In a very simple jQuery modal, I close the modal by clicking on CLOSE as $('#close').click(function(e) { e.preventDefault(); $('#overlay, #alertModalOuter').fadeOut(400, function() { $(this)....

  1. close modal on click outside modal
  2. close modal click outside bootstrap
  3. close modal click outside react
  4. close modal click outside jquery
  5. close modal click outside angular 2
  6. close modal click outside js
  7. close modal on click outside
  8. close modal when click outside

I'm using Cleditor http://premiumsoftware.net/cleditor/docs/GettingStarted.html. I want to get the value on keyup and insert the text into another div. cleditor comes with change() event that i'm ...

I'm using Cleditor http://premiumsoftware.net/cleditor/docs/GettingStarted.html. I want to get the value on keyup and insert the text into another div. cleditor comes with change() event that i'm ...

Browsing Hacker News and I come across http://streamjs.org/ which is an implementation of a lazy evaluated collection in Javascript. One of the examples is this: function ones() { return new ...

Browsing Hacker News and I come across http://streamjs.org/ which is an implementation of a lazy evaluated collection in Javascript. One of the examples is this: function ones() { return new ...