Asp.net Internet Explorer 8中的ScriptManager.RegisterClientScriptBlock和jQuery出现问题

Asp.net Internet Explorer 8中的ScriptManager.RegisterClientScriptBlock和jQuery出现问题,asp.net,jquery,plugins,scriptmanager,registerclientscriptblock,Asp.net,Jquery,Plugins,Scriptmanager,Registerclientscriptblock,我想使用jgrowlpluginforjquery()在页面上显示一些消息。为此,我调用ScriptManager.RegisterClientScriptBlock方法,如下所示: ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(), "$.jGrowl('" + message + "');", true); 该代码在Firefox/Chrome/Safari中运行

我想使用jgrowlpluginforjquery()在页面上显示一些消息。为此,我调用ScriptManager.RegisterClientScriptBlock方法,如下所示:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(),
   "$.jGrowl('" + message + "');", true);
该代码在Firefox/Chrome/Safari中运行得非常完美。但是在InternetExplorer中,我没有看到通知,也没有收到任何Javascript错误

我在Windows7下工作,我有InternetExplorer8测试版(8.0.7000.0版),在兼容模式下我也有同样的“bug”


如何解决此问题?

之所以出现此问题,是因为IE8希望在修改DOM之前加载所有DOM元素。我能够复制您用jGrowl描述的问题

为了解决这个问题,我修改了您的脚本,以便在文档准备好后调用jGrowl。以下是更新的代码:

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

添加到页面。如果没有错误,我认为您必须在客户端页面中添加此选项

<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>

var prm=Sys.WebForms.PageRequestManager.getInstance();
prm.添加_initializeRequest(initializeRequest);
prm.add_endRequest(endRequest);
函数初始化请求(发送方,参数){
}
函数EndRequest(发送方,参数){
}

有关更多详细信息,请参阅。

谢谢您的回答。我试着帮你修好,但还是不行。可能是因为我在页面上有一个更新面板?我用一个更新面板测试了这段代码,它运行得很好。你真的复制/粘贴了上面的代码吗?浏览器中是否有javascript错误?如果执行此操作后仍有问题,则可能需要升级到IE8的最终版本,而不是Beta版。