显示带有Firefox扩展名的页面

时间:2011-05-02 14:26:46

标签: javascript html firefox firefox-addon

当有用户打开新标签页或网页时,有人可以告诉我如何编写显示本地HTML页面(包含在扩展名中)的Firefox扩展程序。

3 个答案:

答案 0 :(得分:0)

您需要此功能才能读取插件中的文件

function Read(file)
{
    var ioService=Components.classes["@mozilla.org/network/io-service;1"]
        .getService(Components.interfaces.nsIIOService);
    var scriptableStream=Components
        .classes["@mozilla.org/scriptableinputstream;1"]
        .getService(Components.interfaces.nsIScriptableInputStream);

    var channel=ioService.newChannel(file,null,null);
    var input=channel.open();
    scriptableStream.init(input);
    var str=scriptableStream.read(input.available());
    scriptableStream.close();
    input.close();
    return str;
}

然后创建一个元素并添加HTML的内容。

gBrowser.addEventListener("DOMContentLoaded", function(e) {
    var documentElement = e.originalTarget.defaultView.document;
    var div = documentElement.createElement("div");
    div.innerHTML = Read("chrome://extensioname/content/file.html");
    documentElement.body.appendChild(div);
});

使用e.originalTarget.defaultView.location.href过滤您想要此行为的网页。

答案 1 :(得分:0)

您可以在https://developer.mozilla.org/en/Observer_Notificationshttps://developer.mozilla.org/en/Code_snippets/Progress_Listeners以及https://developer.mozilla.org/En/Code_snippets/On_page_load找到一些信息。

要在XUL内容中显示HTML内容(尽管您也可以打开纯XHTML对话框),但可以使用XUL iframe

答案 2 :(得分:0)

如果您覆盖BrowserOpenTab功能,则可以打开您选择的页面而不是about:blank。这可以是您的扩展程序提供的页面;理想情况下,你会为​​它实现一个关于URI的替代方案。