Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создать кнопку JS (https://javascript.ru/forum/misc/76291-sozdat-knopku-js.html)

Moslitr 23.12.2018 08:33

Создать кнопку JS
 
Доброго времени суток. В JS новичок. Хочу создать кнопку, и навесить на нее событие.
Вот что получилось
// ==UserScript==
// @name КНОПКА
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.youtube.com*
// @include https://www.youtube.com*
// @grant none
// ==/UserScript==
setTimeout(function(){
var btn = document.createElement("button");
btn.appendChild(document.createTextNode("КНОПКА"));
btn.onclick = function (){window.location = 'http://www.google.com'; };
var sel = document.querySelectorAll("[id='upload-info']");
sel[1].appendChild(btn);
},1000)

Так работает, кнопка создается, и переходит на сайт по клику.
setTimeout(function(){
var btn = document.createElement("button");
btn.appendChild(document.createTextNode("КНОПКА"));
btn.onclick = function (){window.location = 'http://www.google.com'; };
var sel = document.querySelector("upload-info");
sel.appendChild(btn);
},1000)

Так уже не работает, почему не знаю.

Но.. Я хочу навесить на эту событие, например, чтобы производимое при нажатии на эту кнопку действие было аналогично рядом расположенной красной кнопке "подписаться"
setTimeout(function(){
var btn = document.createElement("button");
btn.appendChild(document.createTextNode("КНОПКА"));
*!*btn.onclick = function (){  что сюда подставить?   };*/!*
var sel = document.querySelectorAll("[id='upload-info']");
sel[1].appendChild(btn);
},1000)



вот сама кнопка
<yt-formatted-string class="style-scope ytd-subscribe-button-renderer">Подписаться <span class="deemphasize style-scope yt-formatted-string">14&nbsp;тыс.</span></yt-formatted-string>


скопированный selector
yt-formatted-string.ytd-subscribe-button-renderer


пробовал разные варианты, ничего не получается

рони 23.12.2018 08:39

Цитата:

Сообщение от Moslitr
document.querySelector("upload-info");

upload-info это что? # или . где?

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Moslitr 23.12.2018 09:14

Цитата:

Сообщение от рони
upload-info это что? # или . где?

Это пользовательский скрипт на сайте https://www.youtube.com/

Так выглядит скриншот


Сейчас разберусь как форматировать, и отформатирую.

рони 23.12.2018 09:40

Цитата:

Сообщение от Moslitr
Это пользовательский скрипт

селектор!!!
var sel = document.querySelector("#upload-info");

j0hnik 23.12.2018 09:41

Цитата:

Сообщение от Moslitr
btn.onclick = function (){  что сюда подставить?   };

btn.onclick = function (){ 
document.querySelector("#subscribe-button>*>*").click();
  };

рони 23.12.2018 09:44

Цитата:

Сообщение от Moslitr
что сюда подставить?

не понимаю, ждите других специалистов.

Moslitr 23.12.2018 09:53

Цитата:

Сообщение от j0hnik (Сообщение 500945)
btn.onclick = function (){ 
document.querySelector("#subscribe-button>*>*").click();
  };


Всё работает! Спасибо большое!


Часовой пояс GMT +3, время: 02:44.