Другие языки программирования и технологии

Как с помощью JavaScript добавить кнопку? (или что-то типа такого)

На сайте, во время отправки сообщения, есть панель разных кнопок (bb-коды) . Я хочу написать js скрипт чтобы в эту панель добавить еще одну кнопку. ID той панели знаю. Скрипт пишу в Tampermonkey
ну например если кнопка заключена в тег А (ссылка) , то создаем тег А и набиваем его нужным хтмл-ем, после чего аппендим его к ноде панели.

var a = document.createElement('A');
a.innerHTML = "внутренний код кнопки";
a.href="blabla";
a.onclick=function(){blabla}
....
panel.appendChild(a);

хотя, можно поступить еще проще:

panel.innerHTML += "код новой кнопки";

Но второй способ может привести к неработоспособности кнопок, если на них забиндены какие-то ивенты _средствами жаваскрипта_ (то есть, не через свойства тега onclick, onmouseover и т. д, а в коде)
Сергей Заяц
Сергей Заяц
51 868
Лучший ответ
Дмитрий Мариевский А у втором примере код новой кнопки в каком виде писать?
В таком виде:

<a href="типа адрес сайта">ссылка</a> (например)
var node = document.createElement('div')
parent.appendChild(node)
Примерно так работать с DOM. Давно на чистом js не писал, всё больше на jquery, но вроде ничего не напутал. Конечно, нужно ещё задать все параметры, хотя бы класс через className, чтобы кнопку стилизовать под кнопку. onclick повесить тоже.
Серёжа Лукин
Серёжа Лукин
52 044
скачай этот самый скрипт, и посмотри какие функции в нем использованы.
IA
Iwan Azarov
23 727
Дмитрий Мариевский Где я этот скрипт скачаю?
Да легко.. . Правда важно было бы нам написать при каких условиях должна появиться кнопка. Пр нажатии на что-то на сайте, или при на ведении на это "что-то" мышкой.. . или же просто при загрузке страницы.. .
Я напишу с помощьую jQuery чтоб кнопка появилась просто заполнении одного инпута.
Ваш html страницы:
....
<div class="figEgoZnaet">
<input id="first" type="text" value="" />
</div>
....
<script>
$(document).ready(function(){
var button = '<input type="button" value="Кнопка" />';

$('#first').on("keyup",function(){
$(this).after(button);
});
});
</script>