2010-11-12 65 views
0

我有以下网页在IE中失真,但验证,我找不到任何问题...... Here's a link to the page在FF,Safari浏览器,铬,但在IE8中是不正确的。在iE8奇怪的网页问题...可能javascript

我在Chrome中也遇到这个错误:“Uncaught TypeError:无法调用null(匿名函数)onload方法'焦点'。

任何建议将是巨大的 - 的代码,如下所示和所使用的包含文件出现在其他的网页,从而导致没有问题可言:

<!--#include virtual="/System/Startup_FranchiseClient.asp"--> 
<% 
EnsurePageIsHTTPS 

Dim blnShowResults : blnShowResults = False 
Dim SQLCommand 
Dim objConn 
Dim rsUser 
Dim rsEmail 
Dim strTempPassword 
Set objConn = Server.CreateObject("ADODB.Connection") 
Set rsUser = Server.CreateObject("ADODB.RecordSet") 
Set rsEmail = Server.CreateObject("ADODB.RecordSet") 
Dim strPassword_Encrypted 
Dim objEncrypt : Set objEncrypt = New Encrypt_MD5 

If Request.Form("ForgotPassword") = "1" then 
    SQLCommand = "SELECT * FROM Clients WHERE EmailAddress = '" & CleanSQLText(Request.Form("strUsername")) & "'" 
    objConn.Open strConn 
    rsUser.Open SQLCommand, objConn, adOpenKeySet, adLockOptimistic 
    if rsUser.RecordCount <> 1 then 
     strSecurity_LoginError = "Sorry, your details could not be found. Please check your email address and try again.<br>" 
    Else 
     strTempPassword = NewGUID() 
     strTempPassword = Mid(strTempPassword, 2, 8) 
     strPassword_Encrypted = objEncrypt.EncryptMD5(strTempPassword) 
     rsUser("ResetPasswordOnNextLogin") = True 
     rsUser("Password") = strPassword_Encrypted 
     rsUser.Update 
     blnShowResults = True 
     SQLCommand = "SELECT '" & CleanSQLText(strTempPassword) & "' AS NewPassword, EmailAddress FROM uvw_EmailContent_ForgotPassword WHERE EmailAddress = '" & CleanSQLText(Request.Form("strUsername")) & "'" 
     rsEmail.Open SQLCommand, objConn, adOpenStatic, adLockReadOnly 
     SendPublicFranchiseEmailTemplate GetSiteConfig("Public_AutoEmailsFrom"), rsEmail("EmailAddress"), "Inside Guides Password Assistance", "EmailTemplate_ForgotPassword", True, rsEmail 
     blnShowResults = True 
    End if 
    rsUser.Close 
    Set rsUser = Nothing 
End if 
%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Inside-Guides.co.uk - Advertiser Admin</title> 
<!--#include virtual="/Assets/Templates/Public/Franchise/HeadCSS.asp"--> 
</head> 
<body class="advertisers" onload="javascript:document.getElementById('strUsername').focus();"> 
<!--#include virtual="/Assets/Templates/Public/Franchise/TemplateStartPages.asp"--> 
<h1>Forgot Password</h1> 
<% 
If blnShowResults = False then 
    %> 
    <div class="bg MainCopy"> 
    <p>Please enter your email address below and we will email you your password:</p><br /> 
    <p class="ErrorText"><% = strSecurity_LoginError %></p> 
    <form name="LoginForm" method="post" action="ForgotPassword.asp"> 
     <input type="hidden" name="ForgotPassword" value="1" /> 
     <table> 
      <tr> 
       <th align="left" valign="middle" style="width:110px;"> 
        Email Address: 
       </th> 
       <td align="left" valign="middle"> 
        <input type="text" name="strUsername" value="" /> 
       </td> 
       <td align="right" valign="middle"> 
        <input type="submit" class="submit" value="Send Password" /> 
       </td> 
       </tr> 
      </table> 
    </form> 
</div> 
    <% 
Else 
    %> 
    <% 
    If Session("Role_Developer_DebugUser") = True then 
     %> 
     <h1><font color="red"><% = strTempPassword %></font></h1> 
     <% 
    End if 
    %> 
    <span class="MainCopy">A new password has been emailed to you. Please check your email and use the temporary password provided to access your account<br /> via the link provided. &nbsp; You can then choose a new password.</span> 
    <% 
End if 
%> 

<!--#include virtual="/Assets/Templates/Public/Franchise/TemplateEnd.asp"--> 
</body> 
</html> 
<!--#include virtual="/System/Shutdown.asp"--> 
+0

显示客户端问题的服务器端代码是无用的。显示浏览器看到的生成的客户端代码。 – epascarello 2010-11-12 20:46:48

+0

您应该停止通过连接字符串并使用参数来停止创建SQL命令。不管CleanSQLText方法有多聪明,都有可能是一个等待被利用的安全漏洞。 – 2010-11-12 20:52:30

回答

2

你说得对,它的的JavaScript。你没有一个ID为strUsername的元素。将id =“strUsername”添加到要聚焦的输入元素。

<input type="text" id="strUsername" name="strUsername" value="" /> 
+0

非常感谢回复,帮助很大......我应该在这里放置id =“strUsername”:? – sue 2010-11-12 20:51:48

+0

对不起,发送了一下!请原谅我的基本帮助要求......是否应将id添加到name =“strUsername”的输入元素中?非常感谢您的帮助 – sue 2010-11-12 20:53:27

+0

它应该被添加到任何您想要关注的输入字段中!但我假设是,是的。我编辑了我的回复以显示此... – Jeff 2010-11-12 20:55:34

0
document.getElementById('strUsername').focus(); 

此调用失败,因为你没有与页面上ID的元素。您需要分配的ID属性和名称属性:

<input type="text" id="strUsername" name="strUsername" value="" /> 

就像错误消息告诉你,它找不到由ID的元素,使函数返回空值,并且可以在空引用上不要调用focus()

+0

非常感谢您的帮助,我已经完成了删除Chrome jscript错误的操作,但页面仍然在IE中被扭曲......只是无法弄清楚它。感谢您修复,但如果有任何其他想法的变形将不胜感激...... – sue 2010-11-12 20:59:56

+0

不知道你的意思是“扭曲”。我可以看到你的顶级菜单最后一项运行到下一行。看起来像这是由于您的菜单链接中的标签定义的宽度。 – jaywon 2010-11-12 21:08:48