Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чтение файла при помощи ActiveXObject (https://javascript.ru/forum/misc/46651-chtenie-fajjla-pri-pomoshhi-activexobject.html)

parinь 18.04.2014 12:01

Чтение файла при помощи ActiveXObject
 
Привет!
Изучаю возможности объекта ActiveXObject в IE8 и попал на ошибку
function почитать(){
 var папка = "Папка1";
 var ФСО = new ActiveXObject("Scripting.FileSystemObject");
 полныйПуть=window.location.pathname;
 var путь=полныйПуть.replace(ФСО.GetFileName(полныйПуть),"Папки\\"+папка ).replace(/\//g,"\\").replace("\\","");
 if (!ФСО.FolderExists(путь)){ alert("Такой папки нет"); return; }
 var файл = ФСО.OpenTextFile(путь+"\\фаил.html", 1, false,-1);
 текст = файл.ReadAll();
  ...
 файл.Close();
}

В строке 8 отладчик сообщает, что "объект не поддерживает это свойство или метод". Как я понимаю, речь о ReadAll(). Почему?
Любопытно, что в IE11 всё норм) и по-моему в 10, а вот в 9 - тоже нет. Хочется кросс...эээ...версионости.
И ещё я не пойму, как в том же IE8 получить выбранное значение ниспадающего списка
<select id="перечень" onchange="почитать();"><option>Папка1</option><option>Папка2</option></select>
var перечень=document.getElementById("перечень");
 var папка=перечень.value; // здесь value=""

devote 18.04.2014 14:30

Цитата:

Сообщение от parinь
.replace(/\//g,"\\").replace("\\","");

это как это? в чем смысл заменять эти / слеши на эти \ а затем их вообще удалять?

rgl 18.04.2014 14:49

...................
var файл = ФСО.OpenTextFile(путь+"\\фаил.html", 1, false,-1);
if( ! файл ) { alert( "Can't open file"+путь+"\\фаил.html" ); return; } 
...................

parinь 18.04.2014 14:49

devote, в первом случае заменяются все слеши (кстати, там правильнее написать replace(/\//g,"\\\\") ), а во втором только первые:
было "/C:/..."
стало "С:\\..."
хотя, вроде, всё равно какие слеши

parinь 18.04.2014 15:48

rgl, объект создаётся без проблем, более того, среди доступных для него методов сам же отладчик приводит ReadALL()

parinь 18.04.2014 15:58

Всё, посоны, расходимся
написал var текст = файл.ReadAll();
поплакал
признался в ненависти к ie, к js
признался в ненависти к майкрософт
признался в ненависти к гейтсу, к себе, ко всем
пошёл отдохнуть


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