我有一个用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>
答案 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更改为具有扩展名的内容。