Chrome 扩展历史代理回调函数 API

Proxy callback function of Chrome extension history API

我想代理 chrome.history.search 的回调函数来获取历史记录项。

这是一个例子:

chrome.history.search({text: '', maxResults: 10}, function(data) {
    // ...
});

对于此示例,我想捕获 10 个最近访问的 URL。

这是我尝试过的:

chrome.history.search = new Proxy(chrome.history.search, {
    apply: (target, thisArg, argumentsList) => {
      console.log(argumentsList[1])     // this gives me the callback function not the data items
      return target.apply(thisArg, argumentsList)
    }
  })

如何改进它以代理 chrome.history.API 的回调函数并记录传递给回调函数的 10 个最近访问的 URL?

在您自己的自定义回调中执行,然后调用原始回调(如果存在):

chrome.history.search = new Proxy(chrome.history.search, {
  apply(target, thisObj, args) {
    const cb = typeof args[args.length - 1] === 'function' && args.pop();
    return target.call(thisObj, ...args, res => {
      console.log(res);
      if (cb) cb(res);
    });
  },
});