I've created a website that displays a numbers of images and draws them on
a canvas. Those images are PreloadedImage instances, and fire the draw
method on their load event. This works fine in Chrome but in Internet
Explorer their width are 0 when asked for (in Chrome, their width is
correct) using PreloadedImage.getWidth(), or getOffsetWidth(), or via
getElement().getStyle().getWidth()...
When inspecting the instance of the PreloadedImage in Eclipse, i can see
that the element does have the correct width and height, but when it's
requested by GWT, the result is zero, resulting in incorrect drawing.
Any ideas?
- edit 1: tried it by waiting for the load to finish using a Timer:
I did a quick try to wait for the image to render but it seems not to be
loading at all:
currentImage = new PreloadedImage();
currentImage.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
Timer timer = new Timer() {
@Override
public void run() {
System.out.println("timer check: width: " +currentImage.getWidth());
if(currentImage.getWidth()>0) {
//draw the image
this.cancel();
}
}
};
timer.scheduleRepeating(100);
}
});
- edit 2: some more information:
When the image is loaded, before drawing, I request its dimensions. When
inspecting currentImage (instance of PreloadedImage), the toString method
returns the following:
<img aria-hidden="true"
style="display: none; visibility: hidden;"
class="PRELOADEDIMAGE"
src="/imageservlet?filename=1368280253128&height=1000" width="1505"
height="1000">
Note that width and height are set correctly. However, when requesting the
following:
currentImage.getWidth()
currentImage.getOffsetWidth()
String heightattr = e.getAttribute("height");
I get consistently zero results. I suspected the encoding of the ampersand
to be a problem, but Internet Explorer deals with it the same way as Chrome
does (in the end, the same url is used to fetch the image, and it is
correct).
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.