Firefox(3.6。*)のアドオンを開発中です。次のコードnotify
から呼び出されたinit
はうまく動作しますが、onPageLoad
から呼び出されるとthis.notify is not a function
というエラーが出ます。何故ですか?Firefoxアドオン - `this`はあるメソッドでは動作しますが、同じオブジェクトの別のメソッドでは失敗します
また、私がmyextobj.notify('title', 'msg')
に電話を変更すると、それは動作します。同じことは変数へのアクセスにも当てはまります。では、this
とオブジェクト名の違いは何ですか?
var myextobj = {
init: function() {
this.notify('init', 'We are inside init');
...
var appcontent = document.getElementById("appcontent"); // browser
if(appcontent)
appcontent.addEventListener("DOMContentLoaded", this.onPageLoad, true);
},
onPageLoad: function(aEvent) {
this.notify('onPageLoad', 'We are inside onPageLoad');
...
},
notify: function (title, text) {
Components.classes['@mozilla.org/alerts-service;1'].
getService(Components.interfaces.nsIAlertsService).
showAlertNotification(null, title, text, false, '', null);
}
};
window.addEventListener("load", function() { myextobj.init(); }, false);