chrome.history.deleteUrl或chrome.browsingData.remove的Google扩展



我正在做一个chrome扩展项目,但无法让hostequals工作,因此它覆盖了用户经过域的所有地方。例如,如果用户转到https://www.google.com/imghp?hl=en让代码在那里再次执行。在background.js文件中可以这样做吗?我认为这里的比赛模式行不通。如果设置为精确的url chrome.history.deleteUrl({url:"www.google.com"}(,则以下代码可以正常执行,但如果我试图将其设置为hostEquals,则无法执行。我认为此函数不允许使用hostEquals.感谢您的帮助。

background.js文件-

'use strict';
chrome.webNavigation.onCompleted.addListener(function() {
}, {url: [{urlMatches : 'www.google.com'}]});
var callback = function () {
alert("History is clearing");
};
chrome.history.deleteUrl(
{ url: [{hostEquals: 'www.google.com'}]}
, callback);

有没有一种方法可以将hostEquals作为变量?HostEquals也不适用于chrome.browsingData.remove((

请不要发明不存在的属性:因为文档中说deleteUrl只有url属性,即"要删除的URL",而不是模式。如果你想从一个域中删除所有URL,那么首先使用chrome.history.search找到它们。另请参阅演示扩展。

更好的解决方案可能是使用提供给onCompleted回调的details.url,正如您在文档中看到的那样。另请参阅演示扩展,并亲自查找更多示例。

chrome.webNavigation.onCompleted.addListener(details => {
chrome.history.deleteUrl({url: details.url});
}, {url: [{hostEquals: 'www.google.com'}]});

代码中的另一个问题是urlMatches是错误的工具,因为它是一个可以匹配的正则表达式https://foo/bar/www1google2com在不相关的URL中。

附言:请考虑使用onCommitted而不是onCompleted来更早地执行检查。

相关内容

最新更新