0

我正在尝试使用 JavaScript 在我的目录中找到一个 JSON 类型的文件。然而,当我查看谷歌搜索结果时,他们声称 JavaScript 不能做这样的事情,因为它是一种客户端语言。但是,当我执行以下代码(这不是我想要的,但它可以工作)时,它指定了我正在寻找的文件,它可以工作。我想知道为什么会这样。是因为我使用的是 jQuery 吗?

澄清一下,我有一个目录,其中包含我的 html 文件和 JSON 文件,而 Scene.js 文件位于子目录中。所以,它看起来像:

-labvtk

---ch4_CameraTypes.html(html文件)

---噪音.json

---js

-----webgl

--------场景.js

如果是这种情况,你会如何建议我找到一个 JSON 类型的文件(也许像 *.j​​son )而不是明确说明文件名(在这种情况下为 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

4

1 回答 1

2

您找到的 Google 条目非常正确:您无法使用 Javascript 搜索服务器。如您所演示的,如果您已经知道名称,则可以找到文件。

在服务器上进行搜索的唯一方法是在执行此操作的服务器上实现一个脚本。例如,您可能会使用 PHPscandir()glob()函数。还有很多其他的方法。

这个问题可能会给你一些指示。

于 2013-06-21T22:44:17.497 回答