Я пытаюсь собрать вместе функцию включения в стиле php для javascript.Маршрут, по которому я иду, - через XMLHttpRequest.Включенный файл будет загружен, но функции в этом файле недоступны, поскольку их область действия ограничена вызывающей их функцией.
Я натолкнулся на эту статью , которая достигает аналогичной цели, но требует, чтобы кодировщик заранее определил, какие функции им требуются, в то время как я хотел бы просто включить файл и автоматически добавить функцииоконный объект.
Вот мой прогресс
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, к которым я могу получить доступ для получения списка функций в файле?