Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   В некоторых браузерах неправильно отображается кодировка (https://javascript.ru/forum/css-html/67916-v-nekotorykh-brauzerakh-nepravilno-otobrazhaetsya-kodirovka.html)

svp 15.03.2017 14:10

В некоторых браузерах неправильно отображается кодировка
 
Добрый день уважаемые!
Требуется Ваша помощь. Сам справиться не могу.
Проблема такая.
На сайте есть форма обратной связи на html, php.
Если какое-то поле не заполнено и нажимается кнопка Отправить, то появляется не большое, как бы всплывающее, окошко с фразой на русском языке, о том, что надо заполнить это поле. За эти окошки и текстом в них отвечает javascript файл. Так вот:
Браузер Google Chrome всегда выдает эти окошки с русским текстом, а вот в FireFox, Edge и Internet Explorer 11, периодически именно в этих окошках слетает кодировка - дней 5 везде нормально, потом вместо русских символов ромбики, а потом через несколько дней опять нормально. И так по кругу.
Все страницы сайта в windows-1251. В корне сайте в .htaccess в самом верху строка AddDefaultCharset windows-1251. Создал в директории, где находится этот файл js еще один .htaccess с выше указанной строкой.
Ни чего не помогло. В самом файле (он на html, а обработчик на php) формы обратной связи, там где начинается форма есть строка <script language="JavaScript" type="text/JavaScript" charset="windows-1251" src="zapoln_formi.js"></script>
А в Google Chrome всегда все нормально.
Помогите пожалуйста избавиться от слета кодировки в этих браузерах.
Сам сайт http://fanatgusyatnik.ru. Проверить можно так: заходите на сайт, сверху справа нажимаете "Написать мне письмо", попадаете в форму обратной связи и ни чего не заполняя в ней нажимаете "Отправить", появится всплывающее окно с ромбиками вместо фразы Введите Ваше имя!
Если какие исходники нужны - скажите, выложу.

рони 15.03.2017 14:37

svp,
ошибка не проявилась, но
замените в zapoln_formi.js функцию hilite на это
function hilite(field)
{
 // подсветить пустое поле, чтобы заполнил пользователь

  document.my_form.elements[field].style.backgroundColor="#AEC6DE";

}

svp 15.03.2017 14:59

Цитата:

Сообщение от рони (Сообщение 447427)
svp,
ошибка не проявилась

Мне раньше тоже говорили некоторые юзеры, что у них нормально.
Почему так?

Заменил как Вы посоветовали. И страницу с формой перезагружал и кзш браузера очищал - результат тот же, ромбики.
Пока вернул старый zapoln_formi.js.
А в Гугл все нормально.

рони 15.03.2017 15:05

Цитата:

Сообщение от svp
Заменил

незаметно

svp 15.03.2017 17:50

Цитата:

Сообщение от рони (Сообщение 447440)
незаметно

Ну я же написал, что заменил, результат тот же и пока вернул старый обратно.

рони 15.03.2017 18:00

svp,
результат должен был быть в подсветке ошибочного поля -- но раз вам ненужно
Цитата:

// подсветить пустое поле, чтобы заполнил пользователь
можно ничего не менять, в том виде каком эта функция у вас сейчас, она не рабочая.

рони 15.03.2017 18:05

svp,
попробуйте заменить файл целиком на это
function hilite(field) {
     document.my_form.elements[field].style.backgroundColor = "#AEC6DE"
}

function testData() {
    if (document.my_form.elements["Name_user"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0438\u043c\u044f!\t\n");
        hilite("Name_user");
        document.my_form.elements["Name_user"].focus();
        return false
    }
    if (document.my_form.elements["E_mail"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 E-mail!\t\n");
        hilite("E_mail");
        document.my_form.elements["E_mail"].focus();
        return false
    }
    if (document.my_form.elements["Subject"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f!\t\n");
        hilite("Subject");
        document.my_form.elements["Subject"].focus();
        return false
    }
    if (document.my_form.elements["Message"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435!\t\n");
        hilite("Message");
        document.my_form.elements["Message"].focus();
        return false
    }
    if (document.my_form.elements["keystring"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u0434!\t\n");
        hilite("keystring");
        document.my_form.elements["keystring"].focus();
        return false
    }
};

svp 15.03.2017 18:54

Сейчас зашел и опять все нормально со старым моим файлом.
Ни чего понять не могу.
Поставил Ваш новый файл. С ним тоже все нормально с кодировкой и действительно незаполненные поля стали подсвечиваться.
Убрал Ваш новый и поставил свой старый. Буду ждать первого слета кодировки и потом поменяю на Ваш. Интересно восстановится ли кодировка с Вашим, а сейчас не поймешь - исправилось или нет, он и с моим старым заработал.
У меня к Вам большая просьба.
На этом сайте есть еще форма покупки сделанная на основе этой формы обратной связи, только добавлено одно поле и фразы в некоторых этих окнах изменены.
Не могли бы Вы и для этого zapoln_formi.js написать новый скрипт?
На любом товаре, в магазине, нажать кнопку КУПИТЬ и Вы в этой форме.
Я так понял, что у Вас русские символы в нем как-то закодированы, а я вообще-то ни бум-бум в java.
Да и БОЛЬШОЕ СПАСИБО ВАМ!

svp 15.03.2017 19:02

Цитата:

Сообщение от Rise (Сообщение 447472)
svp, у тебя сами файлы в разных кодировках:
- zapoln_formi.js - Macintosh
Тебе надо пересохранить их в windows-1251.

Сейчас открыл этот свой старый zapoln_formi.js в Notepad++ и он показывает, что кодировка у него ANSI, а не Macintosh.

P.S. У меня в опциях была снята галочка с Авто определения кодировки, включил авто определение и действительно Macintosh.

рони 15.03.2017 19:14

svp,
вам описали причину -- пост №8 , сохраняйте все файлы в одной и тойже кодировке
Цитата:

Сообщение от svp
русские символы в нем как-то закодированы

юникод

function hilite(field) {
    document.my_form.elements[field].style.backgroundColor = "#AEC6DE"
}

function testData() {
    if (document.my_form.elements["Name_user"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0438\u043c\u044f!\t\n");
        hilite("Name_user");
        document.my_form.elements["Name_user"].focus();
        return false
    }
    if (document.my_form.elements["E_mail"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 E-mail!\t\n");
        hilite("E_mail");
        document.my_form.elements["E_mail"].focus();
        return false
    }
    if (document.my_form.elements["Subject"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430!\t\n");
        hilite("Subject");
        document.my_form.elements["Subject"].focus();
        return false
    }
    if (document.my_form.elements["Subject"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430!\t\n");
        hilite("Subject");
        document.my_form.elements["Subject"].focus();
        return false
    }
    if (document.my_form.elements["Address"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438!\t\n");
        hilite("Address");
        document.my_form.elements["Address"].focus();
        return false
    }
    if (document.my_form.elements["Message"].value == "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e!\t\n");
        hilite("Message");
        document.my_form.elements["Message"].focus();
        return false
    }
    if (document.my_form.elements["keystring"].value ==
        "") {
        alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u0434!\t\n");
        hilite("keystring");
        document.my_form.elements["keystring"].focus();
        return false
    }
};


Часовой пояс GMT +3, время: 22:49.