Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示带有Firefox扩展的页面_Javascript_Html_Firefox_Firefox Addon - Fatal编程技术网

Javascript 显示带有Firefox扩展的页面

Javascript 显示带有Firefox扩展的页面,javascript,html,firefox,firefox-addon,Javascript,Html,Firefox,Firefox Addon,有人能告诉我如何编写一个Firefox扩展,当用户打开一个新选项卡或网页时,它会显示一个本地HTML页面(包含在扩展中)。您需要这个函数来读取插件中的文件 function Read(file) { var ioService=Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var scriptableS

有人能告诉我如何编写一个Firefox扩展,当用户打开一个新选项卡或网页时,它会显示一个本地HTML页面(包含在扩展中)。

您需要这个函数来读取插件中的文件

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
筛选需要此行为的页面。

您可以在和找到一些信息


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

如果您覆盖
browservepentab
函数,则可以使其打开您选择的页面,而不是
about:blank
。这可能是您的分机提供的页面;理想情况下,您可以为它实现一个关于URI的替代方案。

谢谢您的回答,但我对Firefox加载项非常陌生,整天都在阅读它们的教程,我不知道在Chrome manifest、install.rdf等中放些什么。您能发布完整的代码或将代码发送到我的电子邮件(bruno.da)吗_silva@voila.fr)@布鲁诺,我现在不行。尝试查看
Hello World
扩展,我们在这里提供帮助,但我们不是免费的labor@Iwburk当我要代码时,我并不是要所有的代码。我的意思是如何编写一个扩展(用它的层次结构)来修改默认空白窗口的值的代码示例(因为在官方教程中,他们只讲了只适用于菜单的Chrome),你想在哪里显示这个页面?@尼尔在浏览器的空白页面上(当用户打开一个新的标签时)。