2013-06-21 5 views
0

Я пытаюсь найти один файл типа JSON в моем каталоге с использованием JavaScript. Однако, когда я смотрю на результаты Google, они утверждают, что JavaScript не может сделать такую ​​вещь, потому что это язык на стороне клиента. Однако, когда я делаю следующий код (который не то, что я хочу, но он работает), который определяет файл, который я ищу, он работает. Мне было интересно, почему это так. Это потому, что я использую jQuery?Поиск файлов в каталоге

Чтобы уточнить, у меня есть каталог, содержащий мой файл html и файл JSON, а файл Scene.js находится в подкаталоге. Таким образом, это выглядит следующим образом:

-labvtk

--- ch4_CameraTypes.html (HTML-файл)

--- noise.json

--- Js

- ---- WebGL

------- Scene.js

Если это так, то как бы у Я предлагаю найти один файл типа JSON (например, * .json) вместо того, чтобы явно указывать имя файла (noise.json в этом случае)?

Javascript код:

var Scene = { 
    objects : [], 
    getObject : function(alias){ 
     for(var i=0; i<Scene.objects.length; i++){ 
      if (alias == Scene.objects[i].alias) return Scene.objects[i]; 
     } 
     return null; 
    }, 

    loadObject : function(filename) { 
     var request = new XMLHttpRequest(); 
     console.info('Requesting ' + filename); 
     request.open("GET",filename); 

     request.onreadystatechange = function() { 
      if (request.readyState == 4) { 
       if(request.status == 404) { 
        console.info(filename + ' does not exist'); 
       } 
       else { 
        var o = JSON.parse(request.responseText); 
        o.remote = true; 
        Scene.addObject(o); 
       } 
      } 
     } 
     request.send(); 
    }, 

    addObject : function(object) { 
     ... 

и HTML файл (который имеет некоторые JavaScript в нем)

... 
<script type='text/javascript' src='js/gui/jquery-1.5.1.min.js'></script> 
<script type='text/javascript' src='js/gui/jquery-ui-1.8.13.custom.min.js'></script> 
<script type='text/javascript' src='js/webgl/Scene.js'></script> 
... 
function load(){ 
    Scene.loadObject('noise.json'); 

} 
... 

Этот код был в основном взяты из http://tinyurl.com/merdnch

+0

JavaScript может запрашивать файлы с сервера, с которого идет ваша веб-страница. Поддержка взаимодействия с файлами на компьютере зрителя страницы ограничена и экспериментальна. Чтобы уточнить, вы хотите, чтобы файл JSON со своего веб-сервера исправился? – FakeRainBrigand

+0

Я сделал редактирование, чтобы разъяснить, надеюсь. – ThinkFlow

ответ

2

Записи Google вы Обнаруженные совершенно правильно: вы не можете искать сервер с Javascript. Вы можете, как вы показали, найти файл, если знаете имя.

Единственный способ поиска на сервере - реализовать скрипт на сервере, который делает это. Например, вы можете использовать функции PHP scandir() или glob(). Есть много других способов.

This question может дать вам несколько указателей.