javascript - chrome.history.deleteUrl 或 chrome.browsingData.remove 的 Google 扩展 HostEquals
问题描述
我正在开发一个 chrome 扩展项目,但无法让 host equals 工作,因此它涵盖了用户经过域的所有地方。例如,如果用户访问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找到它们。另请参阅演示扩展。
如您在文档details.url
中所见,更好的解决方案可能是使用提供给 onCompleted 回调。另请参阅演示扩展并自行查找更多示例。
chrome.webNavigation.onCompleted.addListener(details => {
chrome.history.deleteUrl({url: details.url});
}, {url: [{hostEquals: 'www.google.com'}]});
您的代码中的另一个问题是工具错误,因为它是一个可以匹配无关 URL中的https://foo/bar/www1google2comurlMatches
的正则表达式。
PS 考虑使用 onCommitted 而不是 onCompleted 更早地执行检查。
推荐阅读
- asp.net-core - 找不到通用 Mediatr 处理程序
- python - 将多列中的值合并到一个 Pyspark 数据框中
- javascript - How to use bitcoin -rpcwallet flag in deno RPC
- cypress - 使用 Cypress 检查项目是否在列表中。如果是,点击打开它,否则创建它
- mysql - 2 在一个中选择语句
- javascript - 从 vue 组合 API 将项目对象添加到数组
- azure - 如何自定义 Azure B2C 登录页面中的按钮和链接标签?
- windows - 批处理文件根据机器给出不同的值?
- javascript - jquery+on迭代循环我怎么知道点击了哪个元素
- xamarin.ios - xamarin 中带有 pushkit 的 callkit