Как добавить кнопку на любой сайт через расширение / надстройку Firefox? - PullRequest
0 голосов
/ 28 июня 2011

Я хотел бы создать расширение, которое выполняет поиск элементов на странице, находит определенный элемент (например, кнопку «Нравится» в Facebook) и добавляет рядом с ним свою собственную кнопку. Возможно ли это, и если да, то как мне это осуществить?

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.

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Поиск определенного элемента на странице в Javascript довольно тривиален - если элемент имеет свой собственный id, тогда вы просто используете document.getElementById(someId). Добавить элемент в DOM также просто (и все это становится еще проще, используя такие фреймворки, как jQuery). Однако, боюсь, у меня нет опыта написания расширений для браузера. Но я могу сказать вам, да, это определенно возможно. :)

0 голосов
/ 28 июня 2011

Когда вы работаете с документом страницы, вы должны делать это последовательно - не используйте 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...