Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Leech от 30 Ноября 2003, 22:12:47

Название: JavaScript: сканирование папок
Отправлено: Leech от 30 Ноября 2003, 22:12:47
Возможно ли вставить JavaScript, который бы сканировал каталоги и вложенные, и стоящие выше и затем вывести на страницу их структуру? Сам Java позволяет работать с каталогами и файлами... Но можно ли это реализовать средствами JavaScript?
Название: JavaScript: сканирование папок
Отправлено: Xander от 30 Ноября 2003, 23:01:15
кульхацкер фигов.
Название: JavaScript: сканирование папок
Отправлено: FreeSpace от 01 Декабря 2003, 00:30:26
Цитировать
Leech:
Но можно ли это реализовать средствами JavaScript?

eval(unescape( \'%61%6C%65%72%74%28%22%CD%E5%F2%21%22%29\' ))
Название: JavaScript: сканирование папок
Отправлено: Yukko от 01 Декабря 2003, 12:11:16
Leech
Java и JavaScript это РАЗНЫЕ вещи. Брось все попытки что-то сломать на JavaScript ровно до тех пор, пока не соображаешь, что делаешь!
Цитировать
Leech:
Но можно ли это реализовать средствами JavaScript?

Можно, но как не скажу.
Название: JavaScript: сканирование папок
Отправлено: Nickii от 02 Декабря 2003, 00:43:16
Yukko
Мне скажи:) Если ответ в PHP, то это я и сам знаю.
Leech
Пример просмотра каталогов можно увидеть у меня на сайте.
Найди там "Проводник" и смотри. Там и исходники есть.
Если конечно поймешь о чем речь.
Название: JavaScript: сканирование папок
Отправлено: Leech от 02 Декабря 2003, 14:44:58
Ничего я не собираюсь ломать.. просто нужно сделать фичу типа проводника, тока с наворотами....
Название: JavaScript: сканирование папок
Отправлено: Yukko от 02 Декабря 2003, 16:06:12
Leech проводника где? по чем? по удаленным дискам? по своим?

Nickii
сказал
Название: JavaScript: сканирование папок
Отправлено: Leech от 03 Декабря 2003, 11:00:05
Yukko
  Я знаю, что Java и JavaScript - это РАЗНЫЕ вещи, не маленький...
  Проводник по сайту нужен... ничего я ломать не собираюсь...
  Структуру сайтов нужно оформить в XML, обработка происходит на JavaScript. Саму структуру XML меняет Perl...
  Я и сам уже скоро всё закончу, но буду рад услышать новую идею.
  Спасибо всем, кто проявил интерес.
Название: JavaScript: сканирование папок
Отправлено: Leech от 05 Декабря 2003, 14:47:59
Кстати, может, кто подскажет, как оптимальнее всего задать структуру папок в XML? Как определить вложенность - это ясно... Но ещё должен хранитья полный путь к ней...
Может, что нидь типа:

   
     
     
     
   

Название: JavaScript: сканирование папок
Отправлено: Yukko от 05 Декабря 2003, 16:03:08
Leech
Есть такая штука... Nested Sets называется...
Название: JavaScript: сканирование папок
Отправлено: Макс от 05 Декабря 2003, 20:08:49
Yukko
[off] Nested Sets к XML отношения не имеет[/off]

Leech
Цитировать
как оптимальнее всего задать структуру папок в XML?
оптимальная для чего ? ИМХО аттрибут path - лишний
Название: JavaScript: сканирование папок
Отправлено: Leech от 06 Декабря 2003, 12:50:50
Макс
   Чтобы на JavaScript сделать аналог проводника...
Название: JavaScript: сканирование папок
Отправлено: Макс от 06 Декабря 2003, 13:14:14
я бы делал так:


   

     
   

   
     ...
   



....


путь писать не надо (ИМХО) его через XPath вычислить можно
Название: JavaScript: сканирование папок
Отправлено: Leech от 06 Декабря 2003, 21:19:56
Спасиб... попробую...
Название: JavaScript: сканирование папок
Отправлено: Leech от 09 Декабря 2003, 15:50:09
Имя тега прочесть могу, его содержимое тоже,  - тут всё просто...
xmldoc.root.children.item(i).tagName ....
Как прочитать атрибут внутри тега? Допустим, в примере, предложенном выше Максом...
Название: JavaScript: сканирование папок
Отправлено: Yukko от 09 Декабря 2003, 15:59:29
Цитировать
Leech:
Как прочитать атрибут внутри тега?


Не вдаваясь в подробности...
А разница между атрибутом и еще одним вложенным параметром?


SomeData



SomeData
 attrvalue
Название: JavaScript: сканирование папок
Отправлено: Leech от 09 Декабря 2003, 16:10:53
Yukko
... не понял....
Название: JavaScript: сканирование папок
Отправлено: Макс от 09 Декабря 2003, 16:21:15
попробуй
xmldoc.root.children.item(i).attributes.getNamedItem(\'name\');
Название: JavaScript: сканирование папок
Отправлено: Макс от 09 Декабря 2003, 16:23:12
Yukko


    text
    text1
    text

и


    text
    attrvalue
    text1
    text

Какой из дочерних узлов в данном случае является аттрибутом ? :)
Название: JavaScript: сканирование папок
Отправлено: Yukko от 09 Декабря 2003, 17:28:01
Макс
Я не к тому... формат хранения данных задаешь ты, ты и решаешь, какому из дочерних узлов какое дать имя, и как интерпретировать его значение. Вот и все, что я хотел сказать.
Поэтому если нет возможности читать атрибуты, но есть возможность менять формат xml файла, то мой способ вполне и вполне катит... (я не сказал сейчас про JavaScript)
Название: JavaScript: сканирование папок
Отправлено: Leech от 09 Декабря 2003, 17:52:26
Макс


Error: Объект не поддерживает это свойство или метод   :((

Код показать?
Название: JavaScript: сканирование папок
Отправлено: Макс от 09 Декабря 2003, 22:56:33
Leech
ладно показывай.
Броузер IE ?
Название: JavaScript: сканирование папок
Отправлено: Leech от 09 Декабря 2003, 23:14:06
Макс
Может, проще через Асю?
Название: JavaScript: сканирование папок
Отправлено: Leech от 09 Декабря 2003, 23:18:36
IE 6.0
Вызываем из html функцию viewDocument
function viewDocument(){
   xmldoc.URL = xmlsrc;     // Загрузка XML документа
   parse(xmldoc.root);      // Начало разбора документа
}
Функция parse:
function parse(root){
   if(root==null) return;
   var i=0;
   var elem;
   if(root.children!=null){ // Если вложенные элементы не были определены, то свойство children будет установленно в null
      // Перебор дочерних элементов
      for(i=0;i         elem=root.children.item(i);
         if(root.children.item(i).tagName=="DIR"){
         this.document.writeln(\'Dir="\'+root.children.item(i).attributes.getNamedItem(\'name\')+\'"\');
         }
      }
   }
}
Название: JavaScript: сканирование папок
Отправлено: Leech от 09 Декабря 2003, 23:20:21
Чёрт, как вставлять отступы? Чтоб хотя бы код можно было прочитать нормально?
Название: JavaScript: сканирование папок
Отправлено: Макс от 09 Декабря 2003, 23:34:43
Leech
Цитировать
Чёрт, как вставлять отступы? Чтоб хотя бы код можно было прочитать нормально?
[off] если код поместить в теги [ code ] твой код [ / code] то отступы сохранятся [/off]
Название: JavaScript: сканирование папок
Отправлено: Макс от 10 Декабря 2003, 00:18:17
Вот упрощенный пример, того что у меня заработало:




test



Вообще почитай мануал к MSXML - там примеров достаточно.
Название: JavaScript: сканирование папок
Отправлено: Leech от 10 Декабря 2003, 12:10:31
Ага... работает... с некоторыми изменениями, связанными с тем, что идет подгрузка XML из файла...
вместо
xmldoc.loadXML(xmlstr);
пишем
var xmlsrc = "struct.xml"; xmldoc.load(xmlsrc):
Тока как-то всё странно происходит далее... У меня при входе в функцию parse параметр root равен нулю, что вызывает выход из неё. Хотя если написать обработку ошибок загрузки XML вот в таком виде:

function viewDocument(){
if (xmldoc.load(xmlsrc)) {
alert(\'Load XML done\');
}else{
alert(\'Load XML error\');
}
parse(xmldoc.documentElement);
}

то, после того, как выскочит алерт "Load XML done", дальнейшая обработка происходит без проблем, т.е. параметр root не равен нулю... Интересно получается? Прям какой-то волшебный алерт :)
  Макс, если интересно, могу кинуть по Асе урлу, где это всё выложено...
Название: JavaScript: сканирование папок
Отправлено: Макс от 10 Декабря 2003, 14:43:32
Цитировать
Макс, если интересно, могу кинуть по Асе урлу
нет, спасибою у меня есть занятия поинтереснее.
Поведение конечно странное. У тебя XML well-formed ?
И почитай доку по MSXML по объекту parseError

Еще возможно, это связано с тем что XML не успевает подгрузиться.
Проверяй свойство readyState. Пример из мануала: