В моем сценарии iMacros я пытаюсь подключиться к серверу с помощью socket.io. Сначала я должен получить файл socket.io.js, оценить его, а затем использовать socket.io как обычно. Вот отрывок из моего сценария:
function loadScriptFromURL(url) {
try {
var request = Components.classes['@mozilla.org/xmlextras/xmlhttprequest;1'].createInstance(Components.interfaces.nsIXMLHttpRequest);
request.open('GET', url, false);
request.send();
if (request.status !== 200) {
var message = 'There was an error trying to connect to: ' + url + ', request status: ' + request.status;
iimDisplay(message);
}
eval(request.response);
} catch (e) {
window.console.log(e);
return false;
}
return true;
//alert(request.respsonse);
}
loadScriptFromURL('http://localhost:3700/socket.io/socket.io.js');
window.console.log(io.version); // returns 0.9.16
var socket = io.connect('http://localhost:3700');
Проблема в том, что код Javascript, который выполняется iMacros, находится в области действия плагина (песочницы), и когда я использую метод подключения io, я получаю сообщение об ошибке «io.util is undefined». Есть ли способ заполнить этот метод, чтобы iMacros мог его видеть? Думаю, мне нужно внести некоторые изменения в файл socket.io.js, но пока не совсем уверен...