Я определяю следующее MyClass
и его методы в пользовательском скрипте:
function MyClass() {
this.myCallback = function() {
alert("MyClass.myCallback()");
};
this.startRequest = function() {
GM_xmlhttpRequest({
'method': 'GET',
'url': "http://www.google.com/",
'onload': function (xhr) {
myClassInstance.myCallback();
}
});
};
}
var myClassInstance = new MyClass();
myClassInstance.startRequest();
Этот скрипт работает, и метод myCallback()
вызывается после завершения GM_xmlhttpRequest .
Однако это работает только потому, что обратный вызов onload
ссылается на глобальную переменную myClassInstance
. Если я обновлю обратный вызов onload
на
'onload': function (xhr) {
this.myCallback();
}
Тогда я получаю (Chrome) ошибку:
Uncaught TypeError: Объект [объект DOMWindow] не имеет метода myCallback.
Кажется, this
оценивается не в том контексте.
Есть ли способ вызвать myCallback()
метод myClassInstance
, не прибегая к использованию глобальной переменной?