使用FireFox扩展将URL从本地文件系统重定向到Internet

时间:2015-09-30 18:46:45

标签: url redirect firefox-addon local

我的计算机上有几个PDF文件,其中包含指向其他页面的链接。但是,这些链接会将您引导到本地文件系统而不是Internet。即点击该链接可打开浏览器并转到file:///page而不是http://domain/page

修改这些文件以包含完整的URL不是一种选择。

我尝试使用可用的Firefox扩展来重定向URL,但没有一个工作,所以我尝试创建自己的扩展来做同样的事情。到目前为止我发现的是,在标签的“就绪”事件触发之前,URL无法访问,但引用没有完整路径的本地文件的页面总是“未初始化”。

这是我的扩展程序脚本,几乎直接来自https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs

var tabs = require("sdk/tabs");
tabs.on('open', function(tab){
    tab.on('ready', function(tab){
        if (tab.url.indexOf("file:///page") != -1) {
            tab.url = tab.url.replace("file://", "https://domain");
        }
    });
});

有关如何将页面从本地文件重定向到其他位置的任何想法吗?

1 个答案:

答案 0 :(得分:1)

以下代码段可以解决我的问题。 在main.js

var tabs = require("sdk/tabs");
tabs.on('ready', function(tab){
    var new_url = tab.url;
    if (tab.url.indexOf("file:///") != -1) {
        new_url = new_url.replace("file:///", "https://domain/");
        tab.url = new_url;
    }
});

虽然我的Firefox没有在我的标签上触发就绪事件,但是网址就像你想要的那样。例如,当网址为file:///page/lala.pdf时,firefox会忽略该网址,并且不会尝试访问该网址。 我相信Firefox需要一个“真实”的路径来加载页面,例如file:///C:page/lala.pdf

我希望这会对你有所帮助。