2011-02-15 53 views
1

我有一个简单的垃圾邮件杀手我试图放在一起,但文本没有显示在我的窗体上。JavaScript document.write Chrome

的JavaScript是:

<script language="javascript" type="text/javascript"> 
    document.write("SPAM Killer: What is " + GetDateMonth() + " + " + GetDateDay() + "?") 
</script> 

在我的.js文件中,我定义这两个函数:

function GetDateMonth() { 
    return date1.getMonth() + 1; 
} 

function GetDateDay() { 
    return date1.getDay() + 1; 
} 

文本显示了IE8下,而不是浏览器下。

还有一个好处:我的OnClick我提交表单方法的代码,该代码错误地将我的月份和日期位:

string spamError = "The SPAM Killer answer was incorrect. "; 
    char[] split = spamTest.ToCharArray(); 
    for (int i = 0; i < split.Length; i++) { 
    if (char.IsLetter(split[i])) { 
     Ok = false; 
     txtMessage.Text = spamError + "Non-numeric data entered."; 
     return; 
    } 
    } 
    int nTestValue = Convert.ToInt32(spamTest, 10); 
    if (nTestValue < 1) { 
    Ok = false; 
    txtMessage.Text = spamError + "Negatave or zero value found."; 
    } 
    DateTime dt = DateTime.Now; 
    int month = dt.Month; 
    int day = dt.Day; 
    int nCorrect = month + day; 
    if (nCorrect != nTestValue) { 
    Ok = false; 
    txtMessage.Text = spamError + string.Format("Expected {0}; Received {1}.", nCorrect, nTestValue); 
    return; 
    } 

使用IE8,我看到以下内容:

垃圾邮件杀手:什么是2 + 3?

我进入5,点击发送,并获得Expected 17; Received 5.

+0

向我们展示了'date1'被设置的代码。 – servermanfail

回答

0

答案,似乎是在使用document.write()函数附加字符串。

我重新设计了我的HTML更是这样的:

<table> 
    <tr> 
    <td colspan="2"> 
     <b>[Human Check]</b><br /> 
     Enter the text to the left and below exactly as it appears: 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <script language="javascript" type="text/javascript"> 
     document.write(GetSpamText()) 
     </script> 
    </td> 
    </tr> 
</table> 

@serverfault:感谢您对日财产的建议,虽然。那会是一个问题。

GetSpamText()返回的文本可以是静态或编码以创建一个随机值(另一个主题)。

1

不要推倒重来,帮助阅读http://www.google.com/recaptcha

书对于C#代码中看到http://code.google.com/apis/recaptcha/docs/aspnet.html

如果你是坚定的在坚持使用您的代码时,考虑午夜周围的问题以及其他时区的用户。此外,一个机器人可以很容易地回答你的反机器人问题,如果我写了机器人,我需要45秒来编写支持。

如果你还固执,你不应该使用文件撰写了(不是2002年起),而是使用DOM插入文本标签ID是这样的:Change label text using Javascript

+0

这是一个HOSTED网站。我没有安装第三方应用程序的选项。我确实给了它一下,但我遇到了安全性异常:应用程序试图执行安全策略所不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或更改配置文件中的应用程序信任级别。 – jp2code

+0

另外,我打电话给我们的技术支持,并且此选项不适用于动态IP地址。 – jp2code

+0

好吧,告诉我们date1被设置的代码 – servermanfail