我在 dot net 4.0 框架上创建了一个 Web 应用程序,其中 UI 是通过 html 页面完成的。但是最近我们在 IE 11 浏览器上提交表单时遇到问题。当我们提交表单时,它变成了空白页面。对于其他浏览器(Chrome、firefox),甚至低版本IE也能正常工作。
这个问题有趣的部分是,当我在 Debug模式下运行应用程序(通过单击 f12)时,它运行得很好。
有人知道为什么会发生这种情况吗?
<html>
<head>
<title>xyz</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<script type="text/javascript" language="javascript">
<!--
window.name = "__xyz_APP_WINDOW____";
// -->
</script>
<script language='JavaScript' src='scripts/adminmenu.js'></script>
<script language='JavaScript' src='scripts/utilities.js'></script>
<script language='JavaScript' src='scripts/toolTips.js'></script>
<link rel="stylesheet" href="styles/backoffice.css" type="text/css">
<link rel="stylesheet" href="styles/screen.css" type="text/css" media="screen">
<link rel="stylesheet" href="styles/print.css" type="text/css" media="print">
<script language="javascript" type="text/javascript" src="scripts/jquery-min.js"></script>
<script language="JavaScript">
<!--
function checkFormData()
{
do
{
var el = getForm().elements["uid"];
if (!trimAll(el.value).length) break;
el = getForm().elements["pwd"];
if (!trimAll(el.value).length) break;
getForm().elements["_tz_offset"].value = (new Date()).getTimezoneOffset().toString();
return true;
} while(0);
alert(errorMessage[el.name]);
el.focus();
return false;
}
var errorMessage = new Array();
errorMessage["uid"] = "Please enter a Login ID";
errorMessage["pwd"] = "Please enter a password";
function handleEnter(anElement)
{
if (13 == self.event.keyCode)
{
if ("uid" == anElement.name)
{
anElement.form.elements["pwd"].focus();
}
else if ("pwd" == anElement.name)
{
if (checkFormData()) anElement.form.submit();
}
self.event.returnValue = false;
}
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" background="images/bkgd_BackOffice.gif" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" class="DetailBody" onLoad="getForm().elements['uid'].focus();">
<form name='adminForm' method='POST' onsubmit="return checkFormData()" >
<input type="hidden" name="CurrentPage" value="admin_login"/>
<input type="hidden" name="TargetPage" value="admin_index"/>
<input type="hidden" name="_tz_offset" />
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#000000"><img src="images/spacer.gif" width="3" height="1"></td>
</tr>
<tr>
<td><img src="images/masthead_BackOffice_OSP03.jpg" width="800" height="100"></td>
</tr>
</table>
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td align="center">
<table width="60%" border="0" cellpadding="10" cellspacing="0">
<tr>
<td>
<p class="h1">Back Office Login</p>
<p>The Back Office is reserved </p>
<script type ="text/javascript" language="JavaScript">
<!--
var correctBrowser = ((BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Chrome") && BrowserDetect.OS == "Mac") ||
((BrowserDetect.browser == "Explorer" || BrowserDetect.browser == "Chrome") && BrowserDetect.OS == "Windows");
//var correctBrowser = (BrowserDetect.browser == "Safari" && BrowserDetect.OS == "Mac") || (BrowserDetect.browser == "Explorer" && BrowserDetect.OS == "Windows");
var IsIE10OrIE11 =(BrowserDetect.browser == "Explorer" && BrowserDetect.OS == "Windows" && (BrowserDetect.version=="10" || BrowserDetect.version=="11" ));
if (!correctBrowser) {
document.write('<p><b><font color="#CC3333">PLEASE NOTE:</font></b> you are currently using <b>' + BrowserDetect.browser + ' ' + BrowserDetect.version + '</b> on <b>' + BrowserDetect.OS + '</b>. The OrderStream Pro Back Office works best with <a href="https://www.google.com/intl/en/chrome/browser/" target="_blank"><b>Chrome</b></a>.</p>');
}
if (IsIE10OrIE11) {
document.write('<p><b><font color="#CC3333">PLEASE NOTE :</font></b> you are currently using <b>' + BrowserDetect.browser + ' ' +
BrowserDetect.version + '</b> on <b>' + BrowserDetect.OS + '</b>. This browser is not compatible for reporting tools but can be easliy made compatible.<a href="Instruction.htm" target="_blank"><b>Click here </b></a> to see the instruction for making it compatible. </p>');
}
// -->
</script>
<table cellpadding="2" cellspacing="0" border="0" align="center">
<!--vx_ErrorTextStart-->
<tr>
<td align="right"> </td>
<td><b><font color="#CC3333">^vx_ErrorText^ </font></b></td>
</tr>
<!--vx_ErrorTextEnd-->
<tr>
<td align="right"><b>Login ID: </b></td>
<td >
<input name="uid" maxlength="65" onFocus="select()" onKeyPress="handleEnter(this)" tabindex="1" style="width:120px;" value="^vx_uid^" size="10">
</td>
</tr>
<tr>
<td align="right"><b>Password: </b></td>
<td>
<input name="pwd" autocomplete="off" maxlength="65" onFocus="select()" type="password" onKeyPress="handleEnter(this)" style="width:120px;" size="10" tabindex="2">
</td>
</tr>
<tr>
<td></td>
<td><a href="javascript:getPage('admin_forgot')">forgot
your password?</a></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" name="Submit" value="Submit" class="buttonBlue8pt" tabindex="4">
</td>
</tr>
</table>
<p> </p>
</td>
</tr>
<tr>
<td align="center">
<div><iframe src="Footer.htm" frameborder="0" width="100%" ></iframe></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<!--monitormarker-login-->
</body>
</html>
最佳答案
解决此类问题的最佳解决方案是使用浏览器中的开发者控制台(在本例中为 IE 11,按 F12)。
使用“网络”选项卡 (Ctrl+4) 中打开的开发人员工具 (F12) 在 IE 中加载页面。不要忘记通过单击工具栏顶部的“运行”按钮或直接按 F5 键来启用网络流量捕获。
双击有错误的 URL,然后查看响应正文以了解详细信息。
关于javascript - HTML 表单提交导致 IE11 中出现空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030132/