asp.net - 在 Chrome ajax 异步回发端不起作用

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

最佳答案

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

<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

关于asp.net - 在 Chrome ajax 异步回发端不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4080502/

相关文章:

html - CSS 在 IE 和 Chrome 中的行为不同

javascript - 如何使用 javascript 获取用户通过 Google Chrome 上的 html 表单提交的值?

google-chrome - 对同一资源发出多个请求时 Chrome 会停止运行?

javascript - php 没有将详细信息从 ajax 保存到 db

php - 由于 Ajax Shoutbox 导致的高 CPU 使用率

javascript - 如何按键将 JSON 对象转换为 Javascript 数组过滤器?

.net - 如果使用customErrors,则在Application_Error中重定向是否冗余?

c# - 全局异常处理 VS Try catch everywhere

javascript - 无法触发 Bootstrap 确认

c# - 在包含 csc.exe 文件的 smarterasp.net 上发布网站时出现问题?