【发布时间】:2011-01-25 23:29:47
【问题描述】:
我正在尝试为 javascript 拼凑一个 php 样式的包含函数。我采取的路线是通过 XMLHttpRequest。包含的文件将加载,但该文件中的函数不可用,因为它们的范围仅限于调用它们的函数。
我遇到了this article,它实现了类似的目标,但需要编码人员提前指定他们需要哪些功能,而我想简单地包含一个文件并自动将这些功能添加到窗口对象中。
这是我的进步
function twinkle(){
getXMLHTTPObj("twinkle/test.js");
// A simple function inside test.js
includedFunc();
}
// XMLHttp Stuff lifted from he Apple tutorial
var req;
function getXMLHTTPObj(url) {
req = false;
// branch for native XMLHttpRequest object
if(window.XMLHttpRequest && !(window.ActiveXObject)) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}
if(req) {
req.onreadystatechange = processReqChange;
// Set to False so javascript waits for the included functions
// to become available
req.open("GET", url, false);
req.send("");
}
return req;
}
function processReqChange() {
// only if req shows "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
eval(req.responseText);
} else {
alert("There was a problem retrieving the XML data:\n" +
req.statusText);
}
}
}
我正在考虑在每个包含的文件中创建一个函数索引,当包含该文件时可以对其进行迭代,但这并不是一个真正优雅的解决方案。
有什么想法吗?是否有一些 javascript 属性或函数我可以访问以获取文件中的函数列表?
【问题讨论】:
-
这个问题(我最近问的那个)似乎是重复的,并且有几个很好的答案:stackoverflow.com/questions/11279441/…
标签: javascript xmlhttprequest include