使用浏览器 WebExtension 将 URL 从本地文件系统重定向到互联网

问题描述 投票:0回答:2

总结一下这个问题,我的计算机上有几个 PDF 文件,其中包含其他页面的链接。然而,这些链接会将您引导至本地文件系统而不是互联网(即单击链接将打开浏览器并带您前往

file:///page
而不是
http://domain/page
)。

无法修改这些文件以包含完整的 URL。我的问题几乎与我一年半前问的问题相同。不同之处在于,我需要将现有扩展(使用 Firefox SDK 制作)移植到新的 Firefox WebExtensions API(与 Chrome 扩展相同)。

有一些方法可以用于重定向,例如

browser.webRequest.onBeforeRequest.addListener(
    redirect,
    {urls:[pattern]},
    ["blocking"]
);

但只接受

http://
https://
URL 模式。

我目前正在尝试使用以下代码:

var id;
browser.tabs.onCreated.addListener( details => id = details.id )

browser.tabs.onUpdated.addListener( (tabId, changeInfo, tab) => {
    var url = changeInfo.url;
    if (tabId == id && url.includes("file:///")) {
        url = url.replace("file:///page", http://domain/page");
        browser.tabs.update(
            id,
            { url: url }
        );
    }
});

不幸的是,我遇到了与原来的问题相同的基本问题,导致

onUpdated
侦听器未触发(或者如果它确实触发,也不是因为 URL 更改)。但无论使用什么侦听器(例如
onCreated
onActivated
等),我都会得到
about:blank
作为 URL。

我尝试过注入代码来更改地址栏的值,但这似乎也不起作用:

browser.tabs.executeScript( {
    code: "window.location.href = window.location.href.replace('file:///', 'http://domain/')"
});

感谢您的帮助!

redirect google-chrome-extension local firefox-addon-webextensions
2个回答
0
投票
redirectUrl : chrome.extension.getURL("hello.html")

为我工作


0
投票

我也有类似的问题。我想打开whatsapp的api。网址为网页。使用扩展程序或 javascript 自动检测、转换和打开 url。

有人可以帮忙吗?

© www.soinside.com 2019 - 2024. All rights reserved.