在Chrome中,ajax异步回发结束不起作用

时间:2010-11-02 17:41:32

标签: asp.net ajax google-chrome asynchronous callback

我有一个用asp.NET 3.5开发的示例应用程序。在我的母版页面上,我使用以下代码在加载页面时显示GIF。它在IE和FF上正常工作,但在Chrome中失败。按下提交按钮,服务器获取请求并完成其处理,当发生这种情况时,浏览器会按预期显示加载GIF。但是回发永远不会完成,用户继续查看进度GIF。我想知道我在哪里搞砸了......请帮忙!

                             // Get the instance of PageRequestManager.
                             var prm = Sys.WebForms.PageRequestManager.getInstance();
                             // Add initializeRequest and endRequest
                             prm.add_initializeRequest(prm_InitializeRequest);
                             prm.add_endRequest(prm_EndRequest);
                             // Called when async postback begins
                             function prm_InitializeRequest(sender, args) {
                                 // get the divImage and set it to visible
                                 var panelProg = $get('divImage');  
                                 if( panelProg != null)             
                                 {
                                    panelProg.style.display = '';
                                     // Disable button that caused a postback
                                     $get(args._postBackElement.id).disabled = true;
                                 }
                             }
                             // Called when async postback ends
                             function prm_EndRequest(sender, args) {
                                 // get the divImage and hide it again
                                 var panelProg = $get('divImage'); 
                                 if(panelProg != null)
                                 {               
                                    panelProg.style.display = 'none';
                                    $get(sender._postBackSettings.sourceElement.id).disabled = false;

                                 }
                             }

我的divImage很简单

  <div id="divImage" style="display: none">

        <img id="imgId1" src="../../App_Themes/Images/progressbar.gif" style="border-width:0px;" />
        <br />
        Please wait...

    </div>

2 个答案:

答案 0 :(得分:3)

将以下脚本添加到您的页面。

<script type="text/javascript">
    Sys.Browser.WebKit = {}; //Safari 3 is considered WebKit
    if( navigator.userAgent.indexOf( 'WebKit/' ) > -1 )
    {
        Sys.Browser.agent = Sys.Browser.WebKit;
        Sys.Browser.version = parseFloat( navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
        Sys.Browser.name = 'WebKit';
    }
</script>

详情请见:http://blog.joeydaly.com/uncaught-sys-scriptloadfailedexception-sys-scriptloadfailedexception

答案 1 :(得分:0)

我的开发环境中的Chrome中的ajax存在问题(没有.something域的localhost)。当我切换到验收Chrome时工作正常。你在什么环境下工作?

您可以尝试将主机文件中的dev url更改为具有扩展名的内容。