Показаны сообщения с ярлыком google. Показать все сообщения
Показаны сообщения с ярлыком google. Показать все сообщения

понедельник, ноября 26, 2007

что может быть хуже чем показывать и смотреть рекламу? отлавливать в ней ошибки!

повесили на один сайт google adsense. в мозилле, опере всё пучком, а ИЕ что-то кортачится - ничего не показывает кроме ошибок: "незавершённая строковая константа" и "недопустимый символ". в качестве адреса указывает нашу страницу. номер строки и символа - циркулирует между пятком вариантов.

если бы эта проблема наблюдалась только в мозилле - я бы взял огнебаг, да отдебажил по самое небалуйся, но под ИЕ, к сожалению, ничего подобного нет (-_-) причём ошибка выскакивала только в шестом ИЕ. седьмой же - не возникал и спосойно отображал рекламу. правда русские буквы он отображал исключительно вопросительными знаками. сначала я не обратил на это особого внимания, но как потом оказалось - зря.

страницы у нас отдаются в utf-8, но гугол свою рекламу почему-то отдаёт в windows-1251. подозреваю он определяет язык (по региону или по http-заголовку, не суть в общем) в соответствии с ним отбирает объявления (из 6 ссылок 1-2 на русском языке) и по неизвестной причине выбирает кодировку 1251. ие в заголовках её не запрашивает, исходная страница в utf-8, видимо гугол просто для русского языка по дефолту шлёт 1251 и тем самым совершенно не учитывает поведение детища мелкософта - эта мохнатая скотина плевать хотела на http-заголовки подгружаемого яваскрипта. ие при загрузке скриптов и стилей устанавливает для них ту же кодировку, что и на странице для которой они загружаются. как следствие, ие думал, что подгружаемый гуглоскрипт с рекламными данными был в кодировке utf-8 и встретив там русские буквы, которые не входят в ASCII-7, получал совершенно невообразимые коды символов.

как обойти такое поведение ИЕ? да очень просто! есть два варианта:
1. отдавать скрипты в той же кодировке, что и исходная страница.
2. указать в тэге <script> атрибут charset содержащий код нужной кодировки.
если меня читают товарищи из гугла, то в этот их скрипт нужно добавить:
document.write('<script language="JavaScript1.1" 
charset="windows-1251" src="'+c+'"><\/script>')
естественно вместо "windows-1251" нужно подставить ту кодировку в которой собираемся грузить данные.

да, и отдельное спасибо за то, что мне пришлось копаться в этой лапше (-_-)

среда, мая 09, 2007

гугол разочаровывает

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

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

гугол совсем разленился - вместо того, чтобы сделать качественный продукт типа того же gmail - стали скупать чужие поделки. печально [o_o]