[英]Display a page with a Firefox extension
有人可以告诉我如何编写一个 Firefox 扩展,当用户打开一个新选项卡或 web 页面时,它会显示一个本地 HTML 页面(包含在扩展中)。
您将需要这个 function 来读取插件中的文件
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
过滤您想要此行为的页面。
You may find some info at https://developer.mozilla.org/en/Observer_Notifications and https://developer.mozilla.org/en/Code_snippets/Progress_Listeners and https://developer.mozilla.org/En/Code_snippets/ On_page_load 。
要在 XUL 内容中显示 HTML 内容(尽管您也可以打开纯 XHTML 对话框),您可以使用XUL iframe
如果你覆盖BrowserOpenTab
function 你可以让它打开你选择的页面而不是about:blank
。 这可能是您的扩展程序提供的页面; 理想情况下,您将为它实现一个关于 URI 的替代方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.