JavaScript document.write Chrome
Posted
技术标签:
【中文标题】JavaScript document.write Chrome【英文标题】: 【发布时间】:2011-06-27 21:29:45 【问题描述】:我正在尝试组合一个简单的垃圾邮件杀手,但文本没有显示在我的表单上。
<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 下显示,但在 Chrome 下不显示。
作为奖励:我的提交表单的 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.
【问题讨论】:
向我们展示设置date1
的代码。
【参考方案1】:
不要重新发明***,用http://www.google.com/recaptcha帮助看书
C#代码见http://code.google.com/apis/recaptcha/docs/aspnet.html
如果您坚持使用您的代码,请考虑午夜前后的问题以及其他时区的用户。此外,机器人可以很容易地回答你的反机器人问题,如果我编写机器人,我需要 45 秒来编写支持代码。
如果你仍然坚持,你不应该再使用 document.write(不是从 2002 年开始),而是使用 DOM 将文本插入标签 ID,如下所示:Change label text using Javascript
【讨论】:
这是一个托管网站。我没有安装 3rd 方应用程序的选项。我确实试了一下,但遇到了安全异常:应用程序试图执行安全策略不允许的操作。要授予此应用所需的权限,请联系您的系统管理员或在配置文件中更改应用的信任级别。 另外,我致电我们的技术支持,此选项不适用于动态 IP 地址。 天哪!我不担心我的代码背后的逻辑。这只是一个个人网站,可以大声喊叫。问题是 Chrome 中没有显示文本。有人可以解决这个问题吗?【参考方案2】:答案似乎是使用带有附加字符串的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:不过,感谢您对 date 属性的建议。那会是个问题。
GetSpamText()
返回的文本可以是静态的,也可以通过编码创建随机值(另一个主题)。
【讨论】:
以上是关于JavaScript document.write Chrome的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript-输出内容(document.write)
如何让使用 document.write() 创建的 JavaScript 执行?
JavaScript document.write Chrome