问题
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?
回答1:
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);
回答2:
add <form runat="server" id="form1">
to page. It will work...
回答3:
If not wrong, I think you have to add this in the client side page.
<script language="javascript" type="text/javascript" id="forModalPopUp">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
}
function EndRequest(sender, args) {
}
</script>
For more details, take a look at this.
来源:https://stackoverflow.com/questions/844004/problem-with-scriptmanager-registerclientscriptblock-and-jquery-in-internet-expl