Чтение текстового файла из JavaScript
Я делаю файлик html, через который можно будет смотреть видео на YouTube. Идея очень простая.
1. Пишем (вручную) в файлик videos.txt идентификаторы видео с YouTube
2. Запускаем файлик videos.html, который загружает videos.txt в iframe.
3. Скрипт читает имена видео и через document.write формирует страницу превьюшек.
В общем, в FireFox и на localhost всё работает. А с Internet Explorer и с удалённым сервером есть нюансы.
Internet Explorer ругается на innerHTML, более конкретно, на вот эту строчку (Ошибка: требуется Объект):
var VdDt = document.getElementById('videos').contentWindow.document.body.innerHTML;
Удалённо же не грузится вообще ничего, как будто Апач не позволяет прочесть текстовый файлик.
После часа гугленья выяснил, что с innerHTML бывает куча проблем, но все они связаны не со считыванием, а, наоборот, с записью в innerHTML.
Что ещё можно проверить? Или, возможно, есть более простые способы считать файлик из JavaScript?
На всякий случай, вот код целиком:
--- Начало кода ---
<html>
<head>
<title>Видео</title>
<meta http-equiv=«Content-Type» content=«text/html; charset=windows-1251»>
<link rel=«stylesheet» href=«aoa.css» type=«text/css»>
</head>
<body>
<!-- Грузим список видео (из файла videos.txt) -->
<iframe src='videos.txt' name='videos' frameborder='0' width='0' height='0' id='videos'></iframe>
<script type=«text/javascript»>
// Грузим список, удаляем комментарии и лишние строки, нарезаем в массив
var VdDt = document.getElementById('videos').contentWindow.document.body.innerHTML;
VdDt = VdDt.replace(/(<\/?pre>|[ \r])/g, ");
VdDt = VdDt.replace(/(#.*)/g, ").replace(/(.*[^-_\w\n].*)/g, ").replace(/\n(?=\n)/g, ").replace(/((^\n)|(\n$))/g, ");
var VdLst = VdDt.split('\n');
// Выводим видео в две колонки, ширина превьюшек 400х300
document.write('<div align=«center»>\n<div style=«position: relative; width: 900;»>\n');
for (i=0;i<(VdLst.length);i++){
document.write ('<div style=«position: absolute; left: ' + ((i%2)*500) + '; top: ' + (100 + (Math.floor(i/2))*400) + ';»>\n');
document.write ('<object width=«400» height=«300»><param name=«movie» value="http://www.youtube.com/v/' + VdLst[i] +
'&hl=ru_RU&fs=1&«></param><param name=„allowFullScreen“ value=„true“></param><param name=„allowscriptaccess“ value=„always“></param><embed
src=»http://www.youtube.com/v/' + VdLst[i] + '&hl=ru_RU&fs=1&" type=«application/x-shockwave-flash» allowscriptaccess=«always»
allowfullscreen=«true» width=«400» height=«300»></embed></object><br><br>\n\n');
document.write ('</div>');
}
document.write('</div></div>');
</script>
</body>
<html>
--- Конец кода ---