我知道您可以按以下步骤拦截但不能更改/阻止所有重定向:
browser.webRequest.onBeforeRedirect.addListener(function (responseDetails) {
console.log(`From ${responseDetails.originUrl} to ${responseDetails.redirectUrl}`);
}, {
urls: ['*://*/*'],
types: ['main_frame']
});
可以使用browser.webRequest.onHeadersReceived
回调来更改基于HTTP的重定向,该回调搜索Location
标头并重写该值。但这仍然留下了基于JavaScript的重定向(window.location
)和基于<meta>
的重定向(http-equiv="refresh"
),两者都没有通过。
如何通过扩展重写所有三种重定向类型?最终目的是通过通过静态HTML页面来显示发生域切换的重定向的确认提示。