Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Исчезают плюсы в Javascript в IE (https://javascript.ru/forum/css-html-internet-explorer/35813-ischezayut-plyusy-v-javascript-v-ie.html)

proseol 23.02.2013 04:40

Исчезают плюсы в Javascript в IE
 
Такая проблема.
Сайт на Wordpress. Во всех IE браузерах не работает javascript. Если открыть консоль в IE и посмотреть ошибки, много таких ошибок как SCRIPT1004: Expected ';' и т.д. Кликнув по ошибке можно увидеть строку в JS, и в этой строке отсутствуют знаки '+' в объединении строк, хотя в оригинале плюсы стоят.
Например, в файле строка

var strline = '<a href="#" class="sexyslider-control" rel="' + i.toString() + '"><span>' + (i+1).toString() + '</span></a>';


А IE видит эту строку как

var strline = '<a href="#" class="sexyslider-control" rel="'  i.toString()  '"><span>'  (i).toString()  '</span></a>';


Как такое может быть вообще? подскажите пожалуйста кто сталкивался и кто знает, в чем может быть проблема, где копать, а то я уже всю голову сломал.

Сайт - http://www.danellesboutique.com/

Deff 23.02.2013 05:13

Цитата:

Сообщение от proseol
А IE видит эту строку как

Поставьте после строки
var strline = '<a href="#" class="sexyslider-control" rel="' + i.toString() + '"><span>' + (i+1).toString() + '</span></a>';
alert(strline )
Думаю это дебагер так отображает

proseol 23.02.2013 05:55

с дебаггером ок
 
Нет, с дебаггером все ок, другие сайты отображает нормально.
И скрипт останавливается с ошибкой, указывая место первого '+', ошибка SCRIPT1004: Expected ';'
Тут что-то другое.
Видно что плюс заменяется пробелом. Но никак не могу понять что это может быть... Плюс заменяется на пробел при передаче в url, но ведь тут статичный .js файл... ???

P.S. в данном конкретном случае не суть что появляются ошибки в дебаггере ie, проблема в том что не работает JS, и объединение строк нужно использовать.

P.P.S. проблема не в моем браузере, не работает как минимум на 4-х разных машинах.

danik.js 23.02.2013 08:31

Цитата:

HTML1114: Кодовая страница utf-7 из (Заголовок HTTP) переопределяет конфликтующую кодовую страницу utf-8 из (Тег META)
www.danellesboutique.com

proseol 23.02.2013 15:49

Изначально в <meta тоже определялась UTF-7, это уже мои эксперименты по поиску возможной проблемы. Так что это тоже ни причем

danik.js 23.02.2013 15:59

Цитата:

Сообщение от proseol
Так что это тоже ни причем

Хех. Ты не понял. Это и есть проблема!
У тебя контент реально в utf-8 кодировке. А заголовки говорят что, мол utf-7. В итоге браузер интерпретирует страницу неправильно, пытаясь читать ее как utf-7.

Шас погуглил, вот у чела схожая проблема:
Цитата:

UTF7 encoding reads everything ok, except eats the + signs, and some
characters after them
http://bytes.com/topic/c-sharp/answe...ding-text-file

proseol 23.02.2013 18:14

OK, спасибо! попробую сегодня и отпишусь - помогло или нет!
Но по любому спасибо за помощь и разъяснения!

P.S. добавил плюс. Я тут новичок, поэтому не знаю как благодарить :) но думаю, что поставил '+' правильно. Надеюсь, что и в коде у меня плюсы вернутся :)

danik.js 23.02.2013 18:34

Я вот только не знаю где исправить это. Проблема может быть в .htaccess файле - в нем иногда задают кодировку по умолчанию.
Инструкции вида
Код:

AddDefaultCharset utf-8
AddCharset utf-8 .html .css .js .xml .json .rss

Возможно в index.php. А может в файле functions.php или что-то вроде этого в папке темы. Кстати да, скорее всего где-то в шаблоне это задано.
В php это делается через header('Content-Type: text/html;charset=utf-8')

То-есть должно быть как раз таки utf-8, а не 7.
Еще можно дописать тегам script атрибут charset="utf-8" если есть возможность и все остальное не помогло.

proseol 23.02.2013 22:22

Цитата:

Сообщение от danik.js (Сообщение 236645)
Я вот только не знаю где исправить это. Проблема может быть в .htaccess файле - в нем иногда задают кодировку по умолчанию.
Инструкции вида
Код:

AddDefaultCharset utf-8
AddCharset utf-8 .html .css .js .xml .json .rss

Возможно в index.php. А может в файле functions.php или что-то вроде этого в папке темы. Кстати да, скорее всего где-то в шаблоне это задано.
В php это делается через header('Content-Type: text/html;charset=utf-8')

То-есть должно быть как раз таки utf-8, а не 7.
Еще можно дописать тегам script атрибут charset="utf-8" если есть возможность и все остальное не помогло.

УРРРААА!!! :dance: Помогло, работатает. Огромнейшее спасибо!!! :victory: и + в карму (это кажется так называется?)

danik.js 23.02.2013 22:30

А что помогло? Где была прописана неверная кодировка?


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