JavaScript を使用して、ディレクトリで JSON タイプのファイルを 1 つ見つけようとしています。しかし、Google の結果を見ると、JavaScript はクライアント側の言語であるため、そのようなことはできないと主張しています。ただし、探しているファイルを指定する次のコード (これは私が望むものではありませんが、機能します) を実行すると、機能します。どうしてこうなったのだろうと不思議に思いました。jQueryを使っているからでしょうか?
明確にするために、html ファイルと JSON ファイルを含むディレクトリがあり、Scene.js ファイルはサブディレクトリにあります。したがって、次のようになります。
-labvtk
---ch4_CameraTypes.html (html ファイル)
---ノイズ.json
---js
-----webgl
-------Scene.js
この場合、ファイル名を明示的に言うのではなく、JSON タイプ (おそらく *.json など) のファイルを 1 つ見つけることをどのように提案しますか (この場合は 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');
}
...