【问题标题】:How to handle chrome.webRequest.onHeadersReceived event using declarativeNetRequest API in Chrome MV3 extension?如何在 Chrome MV3 扩展中使用 declarativeNetRequest API 处理 chrome.webRequest.onHeadersReceived 事件?
【发布时间】:2022-07-15 22:33:10
【问题描述】:

目前在我的扩展(版本 MV2)中,我使用chrome.webRequest.onHeadersReceived 来修改特定条件的响应标头。这是一个阻塞请求。我读到我应该在 MV3 版本的扩展中使用declarativeNetRequest。但我在 developer.chrome.com/docs 中找不到 chrome.webRequest.onHeadersReceived 的替代品。在 MV3 扩展中实现此场景的任何想法/建议?

【问题讨论】:

  • 这取决于你的代码到底在做什么。 MV3中可能没有其他选择。

标签: javascript google-chrome-extension chrome-extension-manifest-v3


【解决方案1】:

您可以使用 bg 中的此代码从 MV2 中的任何 Web 请求中删除标头

chrome.webRequest.onHeadersReceived.addListener(
    function (details) {
        for (var i = 0; i < details.responseHeaders.length; ++i) {
            var detial = details.responseHeaders[i].name.toLowerCase();
            if (detial == 'x-frame-options' || detial == "script-src-elem" || detial == "script-src") {
                details.responseHeaders.splice(i, 1);
                return {
                    responseHeaders: details.responseHeaders
                };
            }
        }
    }, {
    urls: ['*://*/*'],
}, ["blocking", "responseHeaders"]);

但这取决于已删除的阻塞。

警告: Google 文档的问题是它仍然是旧文档,它没有说明某些 api 是否已被删除/在 MV3 中不起作用。您只需要编写代码,然后确定该 api 是否仍然有效。

【讨论】:

    猜你喜欢
    • 2023-02-04
    • 2022-12-17
    • 2023-03-13
    • 2016-09-12
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2014-10-27
    • 2017-07-27
    相关资源
    最近更新 更多