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.
Комментариев: 10 к записи “XMLHTTPRequest: загрузка html-кода из внешнего файла”
XmlHttpRequest: кодировка, ajax, charset, unicode
Экскурсии по Москве: вднх - фонтаны, красная площадь, ночная москва .
Случайные записи: достопримечательности Москвы, gps навигация
xpisik сказал 27 Июн 2008 at 09:34 #
Вообще работа с XMLHTTPRequest довольно проста - строчек 20-30 кода с учетом работы во всех браузерах. Рекомендую попробовать без библиотек.
DeveloperGuru.NET сказал 27 Июн 2008 at 14:26 #
А почему не использовать на сайтах кодировку UTF-8 ?
сказал 27 Июн 2008 at 14:32 #
Тот сайт - чистый “статик”, редактирую его в FAR Manager (+ plugin colorer). В ФАРе нереально работать с UTF-8.
DeveloperGuru.NET сказал 27 Июн 2008 at 14:37 #
Notepad++ поддерживает UTF-8
В общем, я не понимаю, зачем люди делают сайты в 1251 и имеют проблемы с кодировками.
сказал 27 Июн 2008 at 14:47 #
Да и обычный notepad тоже умеет в UTF8 сохранять. Но когда мноооого лет юзал FAR - переключаться на что-то другое смысла нет.
> В общем, я не понимаю, зачем люди делают сайты в 1251 и имеют проблемы с кодировками.
Ты знаешь, никогда до этого не видел проблем… Сроду… (Ну если не учитывать времена, когда в нете файлы держали сразу в нескольких кодировках плюс транслит ).
Успешный вебмастер сказал 12 Июл 2008 at 02:36 #
У меня кстати типа такого сапу отображало,пришлось изменить кодировку а то даже бабки не начислялись в сапе
amxm сказал 20 Сен 2008 at 21:39 #
jquery не пробывали?
Diablo сказал 02 Мар 2009 at 20:06 #
Смысл подгружать библиотеку jquery для простого вывода информации. Я на одном сайте парсил блок, менял кодировку и сохранял как js с документ врайт полученного контента. А на сайте просто подгружал сам скрипт.
сказал 02 Мар 2009 at 20:47 #
> Смысл подгружать библиотеку jquery для простого вывода информации.
Просто чтоб не писать свой код.
В итоге на странице примерно такой блок:
(div id=”news-block”)(/div)
(script type=”text/javascript”)
ajax_loadContent(’news-block’,'/news.ssi’);
(/script)
(/div)
сказал 18 Апр 2012 at 14:06 #
В который раз в поисках решения сам себя нагугливаю.
Чтоб больше не вспоминать эту проблему, прописал в .htaccess:
AddDefaultCharset windows-1251 - чисто для этого сайта.
А остальное - да, теперь только в UTF-8 делаю уже в NetBeans.