views:

2945

answers:

2

I want to use jGrowl plugin for jQuery (http://stanlemon.net/projects/jgrowl.html#samples) to display some messages on a page. To do this, I call the ScriptManager.RegisterClientScriptBlock method like this:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(),
   "$.jGrowl('" + message + "');", true);

The code works perfect in Firefox/Chrome/Safari. However in Internet Explorer I don't see the notification and I don't get any Javascript error.

I work under Windows 7 and I have Internet Explorer 8 Beta (version 8.0.7000.0) and I have the same "bug" under Compatibility Mode.

How can I solve this problem?

+7  A: 

This problem occurs because IE8 expects all the DOM elements to be loaded before modifications to the DOM can be made. I was able to duplicate the problem you described with jGrowl.

To fix it, I just modified your script so that the call to jGrowl happens once the document is ready. Here's the updated code:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), 
     Guid.NewGuid().ToString(),
     "$(function(){$.jGrowl('" + message + "');});", true);
Jose Basilio
Thanks for your answer. I tried you fix, but it's still not working. Could be because of the fact I have an update panel on the page?
Stefy
I did test this code with an update panel and it worked fine. Did you actually copy/paste the code above? Are you getting any javascript errors in the browser?
Jose Basilio
If after doing this, you still have a problem, you may need to updgrade to the final version of IE8 instead of the Beta.
Jose Basilio
A: 

Thanks, really helpful working fine

Mathivanan