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

时间:2011-06-27 21:14:41

标签: javascript firefox firefox-addon

我想创建一个扩展,搜索页面上的元素,找到一个特定的元素(例如Facebook喜欢按钮),然后在它旁边添加我自己的按钮。这是可能的,如果可以的话,我该如何实施呢?

更新: 所以我尝试使用我想要的功能实现:

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的按钮。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

当您使用页面文档时,您应该始终如一地执行此操作 - 请勿使用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);