首页 > 解决方案 > 无法重定向 `file:///` 请求

问题描述

我正在尝试覆盖file:///URL,无论是指向文件还是目录,以让我的扩展程序为目录视图显示自己的文件浏览器,并且还可能允许编辑文件的单个文件。

我进行了以下尝试,但从未为文件或文件夹触发侦听器:

browser.webRequest.onBeforeRequest.addListener((details) => {
    const {documentUrl, originUrl, type, requestBody, url} = details;
    if ((/^file:/).test(originUrl)) {
        return {
            redirectUrl: browser.extension.getURL('filebrowser/index.html') + '?abc=1'
        };
    }
}, {
    urls: ['file:///*/*']
}, ['blocking']);

我确实"file:///*/*"向清单添加了权限("<all_urls>"也没有工作)(我为重定向添加了“web_accessible_resources”,但从未达到)。

我猜这可能是因为https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/RequestFilter#Type,它指出只有使用 HTTP/ 发出的请求尽管文件模式支持其他协议,HTTPS 仍适用于事件。但是,onHeadersReceived似乎确实至少收到了file:///文件请求(尽管不是目录请求),即使onBeforeRequest重定向需要它,也没有。

谁能确认是否有任何解决方法?

标签: firefox-addon-webextensionsfile-uri

解决方案


推荐阅读