我正在尝试创建一个firefox扩展,它会查看用户查看并查看URL的所有新页面。我正在查看nsINavHistoryObserver接口,并对onVisit函数感兴趣。有没有办法创建一个可以在调用onVisit函数时监听的事件监听器?
谢谢
答案 0 :(得分:2)
您可以在Mozilla开发人员中心找到有关地方信息(书签和历史记录系统)的一些信息:https://developer.mozilla.org/en/Places
您可以在我们的测试单元中找到示例(请注意其中一些示例无法针对性能进行优化) h t t p://mxr.mozilla.org/mozilla-central/search?string = nsINavHistoryobserver& find = tests
您需要的是获取历史记录服务,并将历史观察者附加到其中
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
var hs = Cc["@mozilla.org/browser/nav-history-service;1"].
getService(Ci.nsINavHistoryService);
var historyObserver = {
onBeginUpdateBatch: function() {},
onEndUpdateBatch: function() {},
onVisit: function(aURI, aVisitID, aTime, aSessionID, aReferringID, aTransitionType) {},
onTitleChanged: function(aURI, aPageTitle) {},
onBeforeDeleteURI: function(aURI) {},
onDeleteURI: function(aURI) {},
onClearHistory: function() {},
onPageChanged: function(aURI, aWhat, aValue) {},
onDeleteVisits: function() {},
QueryInterface: XPCOMUtils.generateQI([Ci.nsINavHistoryObserver])
};
hs.addObserver(historyObserver, false);
您应该尝试尽可能减少在addVisit通知中所做的工作,您应该异步处理它以避免降低基本浏览器功能。