Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 20:12   #1
Andersen1313
Пользователь
 
Регистрация: 26.05.2010
Сообщений: 68
По умолчанию Оптимизация кода под Internet Explorer!

Требовалось написать тест с зашифрованной строкой ответов! Вот написал радовался, но IE в ни какую не хочет воспринимать сценарий подсчета результата..

Что мне исправить в коде или какие операторы не поддерживаются IE???

HTML:

Код HTML:
<script language="javascript">
<!--
  // алфавит (для шифрования)
  alphabet = new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  //  что-то типа пароля :)
  key = new String("assemblerassemblerassembler");
  a = alphabet.join("");
  answers_line = new String("");
  questions = 22; // число вопросов
  answers_variants = questions*5; // число вариантов ответа
  k=0;
  n=k;
  var TabVig = new Array(26);
  for (i=0; i<26; i++)
  {
        TabVig[i] = new Array(26);
  }
    for (i=0; i<26; i++)
    {
        k=n;
        for (j=0; j<26; j++)
        {
            if (k==26)
            {
                k=0;
            }
            TabVig[i][j]=alphabet[k];
            k++;
        }
        n++;
    }
// получение выделенных вариантов ответа
function getResult() {

      answers_line = "";
      for(j=0; j<answers_variants; j++) {
        if(document.questionForm.elements[j].checked){
          answers_line += document.questionForm.elements[j].value;
        }
      }
      if(answers_line.length == 22) {
        answersCheck(viginer_crypt(answers_line));
      } else {
        alert("НЕ ВСЕ ОТВЕТЫ ВЫБРАНЫ!!!!!");
      }
  return 0;
}
// шифр Вижинера
function viginer_crypt(word) {
    stroka=0;
    stolbec=0;
    data_word = new String(word);
    numbers = data_word.length;
    crypt_array = new Array(word);
    letterIndex1 = 0;
    for (i=0;i<numbers;i++)
    {
        for (j=0; j<26; j++)
        {
            if (data_word[i]==alphabet[j])
                {
                    stolbec=j;
                }
            if (key[i]==alphabet[j])
                {
                    stroka=j;
                }
        }
          letterIndex1=j;
           crypt_array[i] = TabVig[stroka][stolbec];
    }
return crypt_array.join("");
}

// Вывод результатов( ошибки )
function errorsReport(answers_info) {
        for (i=0;i<questions;i++) {
            is_set = 0;
            for(j=0;j<answers_info.length;j++){
                if(i==answers_info[j]){
                    is_set = 1;
                    pic_name = "";
                    pic_name = "ok" + i;
                    document.all[pic_name].width = 14;
                    pic_name = "bad" + i;
                    document.all[pic_name].width = 0;
                }
            }
            if(is_set==0) {
                    pic_name = "";
                    pic_name = "bad" + i;
                    document.all[pic_name].width = 18;
                    pic_name = "ok" + i;
                    document.all[pic_name].width = 0;
            }
        }
}
 
// проверка ответов и вывод результатов в процентах
function answersCheck(param) {
        str = new String(param);
        str = param;
        count = param.length;
        must_be = new String("ctvfofmfrbtvgpcnhvauvf");
        right_array = new Array();
        succeded_answers = 0;
        percent = 0;
        rcount = 0;
        for(i=0; i<count; i++) {
            if(str.charAt(i) == must_be.charAt(i)) {
              succeded_answers += 1;
              right_array[rcount] = i;
              rcount++;
            }
        }
        percent = succeded_answers*100/22;
        percent = Math.round(percent);
        if((percent >= 50)&&(percent < 70))
            {
                alert(percent+"% правильных ответов.\nВаша оценка: Удовлетворительно");
            }
            else
                {
                    if ((percent >= 70)&&(percent < 85))
                        {
                            alert(percent+"% правильных ответов.\nВаша оценка: Хорошо");
                        }
                        else
                            {
                                if((percent >= 85)&&(percent <= 100))
                                    {
                                        alert(percent+"% правильных ответов.\nВаша оценка: Отлично");
                                    }
                                    else
                                    {
                                        alert(percent+"% правильных ответов.\nВаша оценка: Не удовлетворительно");
                                    }
                            }
                }
        errorsReport(right_array);
        return 0;
}
//-->
</script>
      
Andersen1313 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
internet explorer 7, 8, 9 SkrudjMakdak JavaScript, Ajax 11 18.07.2011 18:32
Internet Explorer 8 StudentPolitech Софт 22 10.08.2009 22:48
INTERNET EXPLORER BLAD Помощь студентам 4 03.03.2009 21:33
Internet Explorer 418689322 Windows 4 20.11.2008 22:21
Internet Explorer 7.0 Аlex Win Api 12 09.09.2007 09:45