[英]How to make a Chrome Extension to redirect when specific pages are accessed in Manifest V3
我正在尝试制作一个 Chrome 扩展程序,该扩展程序在加载指定页面时重定向到预定义页面。 我为此使用了 webRequest,但是现在我必须迁移到 Manifest V3,webRequest 不能再使用了。 谁能帮我重写脚本以使其与 Manifest V3 一起使用?
这是我用来重定向页面的脚本:
var host = "http://example.com";
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {redirectUrl: host + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1]};
},
{
urls: [
"*://foo.com/demo*",
"*://www.foo.com/test/*"
],
types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
},
["blocking"]
);
我不建议在这个任务中使用declarativeNetRequest ,它的功能非常有限并且界面很尴尬。
听起来您想在页面加载之前重定向用户。 如果是这种情况,您需要使用chrome.debugger API 连接到请求/响应生命周期。 我在这里描述了如何做到这一点 - 他的应用程序似乎很容易适应你自己的。 这是在 MV3 中获得与 MV2 中相同的口径请求操作能力的唯一方法。
替代方法:-使用chrome.webNavigation API。 这只需要为以下一项或多项设置事件侦听器/处理程序:
onBeforeNavigate -> onCommitted -> [onDOMContentLoaded] -> onCompleted
在这里,您可以找到许多使用此 API 的其他项目的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.