我定義中調用一個JavaScript對象的方法如下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();
}
然後我得到的(鉻)錯誤:
Uncaught TypeError: Object [object DOMWindow] has no method 'myCallback'.
它似乎this
被錯誤的上下文中計算。
有沒有辦法使用myClassInstance
來調用myCallback()
方法,而不必求助於使用全局變量?
+1打敗了我。 – JAAulde
+1你剛剛結束了我的小時長頭猛擊會議。謝謝。 :) – Anthony