我试图进行扩展以观察自定义URI标记。所以我需要帮助才能知道如何做到这一点?
提前致谢。
答案 0 :(得分:1)
每个观察者都期望一个包含一个名为observe
的函数的对象,它接收3个这样的参数:
var blasfasf = {
observe: function(some_subject, some_topic, some_data) {
// responder
console.log('im responding to:', some_topic, 'and data coming with it is:', 'some_subject:', some_subject, 'some_data:', some_data);
}
}
现在这是响应者。每当观察在some_topic
上发射时,如果你用
Services.ob.addObserver
要添加以上内容以说明时间http-on-modify-request,您可以这样:
Services.ob.addObserver('http-on-modify-request', blasfasf, false);
第三个arg是假的,除非你想要弱参考,我从来没有找到它的用途,但它干扰研究可以帮助避免僵尸隔间
现在,只要浏览器触发http-on-modify-request,它就会触发你的观察者
现在你也可以将自己的some_topic添加到你自己的观察者身上。
让我们将其添加到my_stamped
。
所以我们这样做:
Services.ob.addObserver('my_stamped', blasfasf, false);
然后触发我们的观察者:
var subject_to_send = 'my made up subject';
var data_to_send = 'my made up data';
Services.ob.notifyObserver(subject_to_send, 'my_stamped', data_to_send);
这会触发你的观察者回调。