tricking Safari 2 to redraw its canvas

I’ve been having a redraw problem on Safari 2. The only solution I’d found so far that worked for me (found here) is to resize the window by 1 pixel and then resize it back. “Not pretty, but it works.”

This is also working for me:

awesomeness = 0;
safari2ForceRedraw = function() {
	if (awesomeness++ % 2) {
		jQuery('body').css('background', 'url(blank.gif) repeat');
	}
	else {
		jQuery('body').css('background', 'url(blank2.gif) repeat');
	}
}

Basically set the body (or some smaller element if you can get away with it) background to a copy of itself. I used jQuery but I’m guessing it’s not a critical part of this working.

It is critically important that you name the toggle variable “awesomeness.” ‘Cause that’s what Safari 2 is. And there’s more of it every time you call the function.

Leave a Reply

You must be logged in to post a comment.