我正在尝试使用 JavaScript 在我的目录中找到一个 JSON 类型的文件。然而,当我查看谷歌搜索结果时,他们声称 JavaScript 不能做这样的事情,因为它是一种客户端语言。但是,当我执行以下代码(这不是我想要的,但它可以工作)时,它指定了我正在寻找的文件,它可以工作。我想知道为什么会这样。是因为我使用的是 jQuery 吗?
澄清一下,我有一个目录,其中包含我的 html 文件和 JSON 文件,而 Scene.js 文件位于子目录中。所以,它看起来像:
-labvtk
---ch4_CameraTypes.html(html文件)
---噪音.json
---js
-----webgl
--------场景.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