JavaScript document.write Chrome - PullRequest
       3

JavaScript document.write Chrome

1 голос
/ 15 февраля 2011

У меня есть простой убийца спама, который я пытаюсь собрать вместе, но текст не отображается в моей форме.

javascript:

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

Inмой файл .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, я вижу следующее:

SPAM Killer: Что такое 2 + 3?

Я ввожу 5, нажимаю Отправить и получаю Expected 17; Received 5.

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Не изобретайте велосипед, помогите читать книги с http://www.google.com/recaptcha

Код C # см. http://code.google.com/apis/recaptcha/docs/aspnet.html

Если вы твердо придерживаетесь своего кода, подумайте о проблемах около полуночи и о пользователях в других часовых поясах. Кроме того, бот может очень легко ответить на ваш вопрос против бота, если бы я написал ботов, мне потребовалось бы 45 секунд, чтобы написать код для его поддержки.

Если вы все еще непреклонны, вам не следует больше использовать document.write (не начиная с 2002 года), а вместо этого использовать DOM для вставки текста в идентификатор тега, например так: Изменить текст метки с помощью Javascript

0 голосов
/ 16 февраля 2011

Ответ, похоже, заключался в использовании функции 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(), может быть статическим или кодированным для создания случайного значения (другая тема).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...