2013-06-21 2 views
0

자바 스크립트를 사용하여 내 디렉토리에 JSON 유형의 파일 하나를 찾으려고합니다. 그러나 Google 결과를 보면 JavaScript가 클라이언트 측 언어이기 때문에 이러한 일을 할 수 없다고 주장합니다. 그러나 내가 찾고있는 파일을 지정하는 다음 코드 (내가 원하는 것은 아니지만 작동 함)를 수행하면 작동합니다. 왜 그런지 궁금 해서요. jQuery를 사용하고 있기 때문에 그렇습니까?디렉토리에서 파일 찾기

명확히하기 위해 HTML 파일과 JSON 파일이 들어있는 디렉토리가 있고 Scene.js 파일은 하위 디렉토리에 있습니다.

-labvtk

--- ch4_CameraTypes.html (HTML 파일)

---

--- JS

noise.json - : 그래서, 같이 보입니다 ---- WebGL을

------- Scene.js

이 경우 어떻게 Y 것 ou는 파일 이름 (이 경우에는 noise.json)을 명시 적으로 말하는 대신 JSON 유형 (예 : * .json)의 파일 하나를 찾도록 제안합니다.

자바 스크립트 코드 :

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 파일 (거기에 일부 자바 스크립트가 있습니다)

... 
<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'); 

} 
... 

이 코드는 주로 당신이 발견 한 Google 항목입니다 http://tinyurl.com/merdnch

+0

자바 스크립트는 웹 페이지의 출처가되는 서버에서 파일을 요청할 수 있습니다. 페이지 뷰어의 컴퓨터에서 파일과 상호 작용하기위한 지원은 제한적이고 실험적입니다. 명확히하기 위해 웹 서버의 JSON 파일을 원하십니까? – FakeRainBrigand

+0

나는 희망을 분명히하기 위해 편집을했다. – ThinkFlow

답변

2

에서 찍은 맞아. 자바 스크립트로 서버를 검색 할 수는 없어. 이미 이름을 알고 있다면, 시연 한 것처럼 파일을 찾을 수 있습니다.

서버에서 검색하는 유일한 방법은 그렇게하는 서버에 스크립트를 구현하는 것입니다. 예를 들어 PHP의 scandir() 또는 glob() 함수를 사용할 수 있습니다. 다른 많은 방법이 있습니다.

This question 몇 가지 유용한 정보를 제공 할 수 있습니다.

관련 문제