2011-05-02 24 views
1

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

+0

您想在哪里显示此页面? – Neil 2011-05-02 22:50:02

+0

@Neil在浏览器的空白页面上(当用户打开一个新标签页时)。 – Bruno 2011-05-03 12:06:23

回答

1

您将需要此功能来读取文件的插件内

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筛选您想要的行为。

+0

感谢您的回答,但我真的很新的Firefox附加组件,并且整天阅读他们的教程,我不知道应该在Chrome清单,install.rdf等中放置什么内容。请您发布整个代码或发送给我我的电子邮件代码([email protected]) – Bruno 2011-05-02 14:58:11

+0

@布鲁诺我现在不能这样做。尝试查看https://developer.mozilla.org/en/building_an_extension – BrunoLM 2011-05-02 14:59:44

+0

上提供的'Hello World'扩展http://mozilla.doslash.org/stuff/helloworld.zip我们在这里提供帮助,不要免费劳动 – 2011-05-02 16:05:18

0

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