javascript - HTML 表单提交导致 IE11 中出现空白页

标签 javascript html .net internet-explorer cross-browser

我在 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">&nbsp;</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>&nbsp;</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/

相关文章:

javascript - 通过链接关注特定部分

html - 使用自定义 CSS 覆盖 Bootstrap CSS

c# - .NET 的 JavaScriptSerializer.Deserialize() 忽略来自 JSON 的数字中的小数点

c# - 如何使用 async/await OnNext/OnError/OnCompleted 方法实现 IObserver?

javascript - 在鼠标悬停时增加标题文本的大小

javascript - jquery问题: how to break and reset setinterval?

jquery - 如何使 <ul> 充当 <ol> (使用数字而不是元素符号)?

javascript - 从对象返回数据并通过 AngularJS 在 <ul> 中显示

加载页面时 JavaScript 未运行`

javascript - 如何在 Redux 中使用 React Native AsyncStorage?