XMLHTTPRequest: загрузка html-кода из внешнего файла
Понадобилось вот сделать одну вещь на сайте - загрузка html-блока в контент страницы с помощью java script. Практически то же самое, что и SSI (sever side includes), но это как бы client side includes.
Просто захотелось сделать это так, чтобы поисковик вообще не видел данного текста. Прямо в браузере в нужную область страницы между двумя div-ами подгружается текст из файлика news.html.
Делается это с помощью объекта XMLHTTPRequest. Нашел готовую библиотеку в виде двух файликов: ajax.js и ajax-dynamic-content.js. Сделал все как полагается, но… тут меня ждал облом. Вместо нужного блока новостей у меня во всех трех браузерах стали отображаться”кракозябры”:

Гуглил, яндексил - все без толку. И заметка Cross-а про ajax и кодировку меня не спасла - другой у меня случай. Сделал маленький эксперимент - сконвертировал файл из windows-1251 в unicode - стало отображаться правильно.
Само собой, меня это абсолютно не устраивало, но какие-то выводы можно было уже сделать…
В конце концов, решилось все очень просто. После того, как я (с подсказки bofh-a) прописал в конфиге апача строчку AddDefaultCharset windows-1251, ява-скрипт стал правильно выдавать текст. Просто в хеадерах не было никакой информации о кодировке файла, а внутри него такой информации быть не могло - это просто кусочек кода, который вставляется внутрь другой страницы. Вот и происходила такая ерунда.
Кстати, нашел весьма полезный сайт в тему. XMLHTTPRequest: описание, применение, частые проблемы: xmlhttprequest.ru.
на
Вообще работа с XMLHTTPRequest довольно проста - строчек 20-30 кода с учетом работы во всех браузерах. Рекомендую попробовать без библиотек.
А почему не использовать на сайтах кодировку UTF-8 ?
Тот сайт - чистый “статик”, редактирую его в FAR Manager (+ plugin colorer). В ФАРе нереально работать с UTF-8.
Notepad++ поддерживает UTF-8
В общем, я не понимаю, зачем люди делают сайты в 1251 и имеют проблемы с кодировками.
Да и обычный notepad тоже умеет в UTF8 сохранять. Но когда мноооого лет юзал FAR - переключаться на что-то другое смысла нет.
> В общем, я не понимаю, зачем люди делают сайты в 1251 и имеют проблемы с кодировками.
Ты знаешь, никогда до этого не видел проблем… Сроду… (Ну если не учитывать времена, когда в нете файлы держали сразу в нескольких кодировках плюс транслит
).
У меня кстати типа такого сапу отображало,пришлось изменить кодировку а то даже бабки не начислялись в сапе
jquery не пробывали?
Смысл подгружать библиотеку jquery для простого вывода информации. Я на одном сайте парсил блок, менял кодировку и сохранял как js с документ врайт полученного контента. А на сайте просто подгружал сам скрипт.
> Смысл подгружать библиотеку jquery для простого вывода информации.
Просто чтоб не писать свой код.
В итоге на странице примерно такой блок:
(div id=”news-block”)(/div)
(script type=”text/javascript”)
ajax_loadContent(’news-block’,'/news.ssi’);
(/script)
(/div)