You could also add a listener to the image to check that it actually loads:<br><br><p class="MsoNormal"> </p>

<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; background: none repeat scroll 0% 0% white;">$</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(92, 92, 92); background: none repeat scroll 0% 0% white;">(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; background: none repeat scroll 0% 0% white;">document</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(92, 92, 92); background: none repeat scroll 0% 0% white;">).</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; background: none repeat scroll 0% 0% white;">ready</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(92, 92, 92); background: none repeat scroll 0% 0% white;">(</span><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 192); background: none repeat scroll 0% 0% white;">function</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(92, 92, 92); background: none repeat scroll 0% 0% white;">()</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;"> <span style="color: rgb(92, 92, 92);">{</span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;">      <b><span style="color: rgb(0, 0, 192);">var</span></b> <span style="color: black;">image</span>
<span style="color: rgb(92, 92, 92);">=</span> <span style="color: black;">$</span><span style="color: rgb(92, 92, 92);">(</span><span style="color: rgb(0, 92, 0);">&quot;#cat&quot;</span><span style="color: rgb(92, 92, 92);">).</span><span style="color: black;">get</span><span style="color: rgb(92, 92, 92);">(</span><span style="color: rgb(0, 64, 128);">0</span><span style="color: rgb(92, 92, 92);">);</span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;">      image.onload = function(e){</span><span style="font-size: 10pt;"></span></p>


<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;">         
<b><span style="color: rgb(0, 0, 192);">var</span></b> <span style="color: black;">cv</span>
<span style="color: rgb(92, 92, 92);">=</span> <span style="color: black;">$</span><span style="color: rgb(92, 92, 92);">(</span><span style="color: rgb(0, 92, 0);">&quot;#img_container&quot;</span><span style="color: rgb(92, 92, 92);">).</span><span style="color: black;">get</span><span style="color: rgb(92, 92, 92);">(</span><span style="color: rgb(0, 64, 128);">0</span><span style="color: rgb(92, 92, 92);">);</span>     
 </span><span style="font-size: 10pt;"></span></p>

<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;">         
<b><span style="color: rgb(0, 0, 192);">var</span></b> <span style="color: black;">ctx</span>
<span style="color: rgb(92, 92, 92);">=</span> <span style="color: black;">cv</span><span style="color: rgb(92, 92, 92);">.</span><span style="color: black;">getContext</span><span style="color: rgb(92, 92, 92);">(</span><span style="color: rgb(0, 92, 0);">&#39;2d&#39;</span><span style="color: rgb(92, 92, 92);">);</span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;">     
</span><span style="font-size: 10pt;"></span></p>

<p style="" class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;">         
<span style="color: black;">ctx</span><span style="color: rgb(92, 92, 92);">.</span><span style="color: black;">drawImage</span><span style="color: rgb(92, 92, 92);">(</span><span style="color: black;">image</span><span style="color: rgb(92, 92, 92);">,</span> <span style="color: rgb(0, 64, 128);">0</span><span style="color: rgb(92, 92, 92);">,</span> <span style="color: rgb(0, 64, 128);">0</span><span style="color: rgb(92, 92, 92);">);</span></span></p>
<p style="" class="MsoNormal">            };<br><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; background: none repeat scroll 0% 0% white;"><span style="color: rgb(92, 92, 92);"></span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(92, 92, 92); background: none repeat scroll 0% 0% white;">});</span><br><br><div class="gmail_quote">On Sun, May 23, 2010 at 10:30 PM, Schalk Neethling <span dir="ltr">&lt;<a href="mailto:schalk@ossreleasefeed.com">schalk@ossreleasefeed.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Jip, using $(window).load() works perfect.<br>
<div class="im"><br>
-----Original Message-----<br>
From: Eduard Pascual [mailto:<a href="mailto:herenvardo@gmail.com">herenvardo@gmail.com</a>]<br>
Sent: Sunday, May 23, 2010 12:33 PM<br>
To: Schalk Neethling<br>
Cc: <a href="mailto:whatwg@lists.whatwg.org">whatwg@lists.whatwg.org</a><br>
Subject: Re: [whatwg] Canvas and Image problems<br>
<br>
</div><div><div></div><div class="h5">On Sun, May 23, 2010 at 12:16 PM, Schalk Neethling<br>
&lt;<a href="mailto:schalk@ossreleasefeed.com">schalk@ossreleasefeed.com</a>&gt; wrote:<br>
&gt; Hi everyone,<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Having a really weird problem that I would like some input on. I am<br>
&gt; trying to draw an image, as well as video, onto canvas. I use the<br>
&gt; simple code<br>
&gt; below:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; $(document).ready(function() {<br>
&gt;<br>
&gt;       var image = $(&quot;#cat&quot;).get(0);<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;       var cv = $(&quot;#img_container&quot;).get(0);<br>
&gt;<br>
&gt;       var ctx = cv.getContext(&#39;2d&#39;);<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;       ctx.drawImage(image, 0, 0);<br>
&gt;<br>
&gt; });<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; When I load up the HTML page in Chrome absolutely nothing happens and<br>
&gt; I see no errors in the JavaScript console. When running it in Firefox<br>
&gt; 3.6.3 I get the following error:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; uncaught exception: [Exception... &quot;Component returned failure code:<br>
&gt; 0x80040111 (NS_ERROR_NOT_AVAILABLE)<br>
&gt; [nsIDOMCanvasRenderingContext2D.drawImage]&quot; nsresult: &quot;0x80040111<br>
&gt; (NS_ERROR_NOT_AVAILABLE)&quot; location: &quot;JS frame ::<br>
&gt; file:///C:/thelab/HTML5Canvas/scripts/canvas_img.js :: anonymous :: line<br>
9&quot;<br>
&gt; data: no]<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; For The life of me I cannot see what I am doing wrong with the above.<br>
&gt; I have done console logs to ensure that the code get’s the image as<br>
&gt; well as the canvas on the relevant lines and it definitely does.<br>
&gt; Anything I am overlooking?<br>
<br>
IIRC correctly, jQuery&#39;s document ready event is fired as soon as the HTML<br>
itself is loaded and the DOM is built, unlike &lt;html&gt;&#39;s onload which waits<br>
also for all external stuff (CSS, JS, images, etc) to be available. This is<br>
a good thing to speed up things that don&#39;t depend on external content but,<br>
in your case, it seems you are trying to use the src resource of an &lt;img&gt;<br>
element before it&#39;s available. I&#39;m no jQuery expert, so I can&#39;t tell for<br>
sure; but you may check it out by running your code from &lt;html&gt;&#39;s onload<br>
event instead of the document ready event.<br>
<br>
Regards,<br>
Eduard Pascual<br>
<br>
</div></div></blockquote></div><br>