如何通过Firefox扩展/插件添加按钮到任何网站?

问题描述:

我想创建一个搜索页面上的元素的延伸,找到一个特定元素(例如,Facebook的喜欢按钮),并增加了下一个我自己的按钮即可。这是可能的,如果是的话,我该如何去实施它?如何通过Firefox扩展/插件添加按钮到任何网站?

UPDATE: 于是,我就实现该功能我想用:

onPageLoad: function(aEvent) { 
    var doc = aEvent.originalTarget; // doc is document that triggered "onload" event 

    var fblike = document.getElementsByTagName("fb-root"); 
    var button = top.window.content.document.createElement("input"); 
    button.setAttribute("type", "button"); 
    button.setAttribute("value", "valore"); 
    button.setAttribute("name", "nome"); 
    var parentDiv = fblike.parentNode; 
    parentDiv.insertBefore(button, fblike); 
    alert(button); 
}, 

我仍然不能得到按钮甚至显示在页面上。有没有办法让按钮显示在整个页面的顶部,所以我知道问题是找到'fb-root'标签?我试图检测Facebook的按钮。

+3

你有没有试过? – meo

+0

@meo我完全lol'd ... :) –

+1

看到这个问题:http://*.com/questions/843802/how-to-add-elements-to-web-page-from-firefox-extension –

当您使用该页面的文档时,应该始终如此 - 不要使用document,因为它会引用您正在运行的文档(通常是浏览器窗口)。你也应该知道你在哪里将其插入同一个文档中创建节点(不要忘记检查错误控制台,那么你应该能够说些什么比“不工作”更具差异)。你的错误修正代码:

var fblike = doc.getElementsByTagName("fb-root"); 
var button = doc.createElement("input"); 
button.setAttribute("type", "button"); 
button.setAttribute("value", "valore"); 
button.setAttribute("name", "nome"); 
var parentDiv = fblike.parentNode; 
parentDiv.insertBefore(button, fblike); 
+0

谢谢!在一个不太相关的说明中,我试图将图像添加到我的按钮。我使用的代码是: button.setAttribute( “图像”, “铬://my_ext/skin/Icon-48.png”); 不幸的是它没有显示出来的按钮。该路径在另一个菜单项中起作用,所以我知道这不是问题的路径。我认为这与设置“图片”属性有关,尽管不知道是什么。还有一种方法可以更改图像的更多值,例如html支持的高度,宽度,对齐方式等? – Zaheer

+0

@ user773953:''元素没有'image'属性,它是'src',请参阅http://www.w3.org/TR/html401/interact/forms.html#h-17.4。你应该认真考虑创建新的问题,你问的与Firefox扩展无关 - 这是基本的HTML。哦,不要忘记信任帮助你的人:http://*.com/faq#howtoask –

在Javascript中寻找页面上的特定元素非常简单 - 如果元素有自己的id那么您只需使用document.getElementById(someId)。向DOM添加元素同样很简单(使用jQuery等框架可以更容易)。但是,恐怕我没有编写浏览器扩展的经验。但我可以告诉你是的,这绝对有可能。 :)