gpt4 book ai didi

javascript - 使用 nsINavHistoryObserver 为 Firefox 扩展创建事件

转载 作者:行者123 更新时间:2023-12-02 20:40:15 25 4
gpt4 key购买 nike

我正在尝试制作一个 Firefox 扩展,它可以查看用户查看的所有新页面并查看 URL。我正在查看 nsINavHistoryObserver 接口(interface),并对 onVisit 函数感兴趣。有没有办法创建一个事件监听器,可以在调用 onVisit 函数时监听?

谢谢

最佳答案

您可以在 Mozilla 开发人员中心找到有关 Places(书签和历史记录系统)的一些信息: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 通知中所做的工作,您应该真正异步处理它,以避免减慢基本浏览器功能的速度。

关于javascript - 使用 nsINavHistoryObserver 为 Firefox 扩展创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2540748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com