如何从Firefox扩展添加元素到网页

时间:2009-05-09 18:24:57

标签: firefox elements gecko xpi

我要开发一个Firefox扩展,当找到标记<input type="file" ... >并选择了一个文件时,它应该在加载的页面中放置一个按钮。

同样,我认为skype工具栏也有类似之处:当一个网站包含一个电话号码时,Skype扩展会自动将其转换为一个按钮,可以点击该按钮来调用skype联系人。

我正在使用GNU / Linux系统,不幸的是,skype扩展在Firefox / skype的Linux版本上不起作用,所以我甚至无法对任何东西进行反向工程......

firefox扩展包含文件overlay.js:此文件包含扩展的主要逻辑。在这里,我只需使用以下代码即可找到<input type="file" ... >个节点:

onFileChosen: function(aEvent) {
var input = aEvent.explicitOriginalTarget; 
if(input.type=="file"){
    alert(input.value); }
}

window.addEventListener("change", function(e) {xpitest.onFileChosen(e)},false);

因此,当选择文件时,会出现一个警告窗口并显示文件名。

但是,如果在选择文件后如何在页面中放置按钮?

我一直在尝试各种document.parentNode和similars,但似乎没什么用。

或者我有可能无法将内容放入加载的页面中吗?

由于

1 个答案:

答案 0 :(得分:4)

在chrome上下文中,您可以使用top.window.content.document获取当前内容文档(例如带有文件选择器的页面)。那时,就像你的JS在页面上运行一样。如果这没有帮助,请使用尽可能多的信息发送您的代码。另请参阅Working with windows in chrome code

你绝对可以在页面中注入内容。