1

Я пишу расширение chrome, которое вводит кнопку на страницу youtube. Кнопка создается в моем скрипте содержимого и вводится на страницу. Моя проблема в том, что я понятия не имею, как создать для него функцию щелчка, либо в сценарии содержимого, либо в фоновом скрипте.Вызов введенной кнопки из сценария содержимого в background.js

мой сценарий содержание (нагнетаемая кнопка):

$("watch7-user-header").innerHTML+= 
'<div id="trans"> 
    <iframe name="iframe"></iframe> 
    <span class="buttonGroup"> 
     <button id="download"> 
      <span class="buttonContent1">'+x+'</span> 
     </button> 
     <button id="menu" class=" yt-uix-button yt-uix-button-default" onclick="";return false;"> //this is the dropdown menu 
      <span class="buttonContent1"> 
      </span> 
      <ul id="stylelist" class="yt-uix-button-menu hid">'+o+S+"</ul> 
     </button> 
    </span> 
</div>" 

Как бы я назвать нажмите событие в фоновом режиме сценария?

+0

Вы попробовали мое предложенное ниже решение? Это сработало для вас? – gkalpak

+0

Несчастливо нет. На самом деле очень смутно, почему это сработает. – user2453973

+0

Возможно, я неправильно понял ваш вопрос. Вы пытаетесь «нажимать» кнопку programmaticaly или регистрировать слушателя, когда пользователь будет нажат? В последнем случае, что должен сделать этот обратный вызов? – gkalpak

ответ

0

Вы не можете нажать кнопку на странице фона. Если вы хотите это сделать, вам нужно будет указать send a message, чтобы сделать это для вас.

Из скрипта содержимого, вы можете сделать это следующим образом:

var evt = new MouseEvent('click', { 
    view: window, 
    bubbles: true, 
    cancelable: true 
}); 
document.querySelector('<yourElementSelector>').dispatchEvent(evt); 

UPDATE:

Если вы tryong щелкнуть <button> элемент, вы можете просто сделать:

document.querySelector('<yourButtonSelector>').click(); 
+0

Не могли бы вы подробнее рассказать? –

+0

Какая часть непонятна? Вам необходимо отправить сообщение с фоновой страницы на сценарий содержимого, а из скрипта содержимого вам нужно выполнить код JavaScript на странице (как показано выше). Есть много ресурсов (даже здесь, на SO) эти шаги более подробно. – gkalpak

+0

Это вопрос от '13, но после прочтения его, я думаю, здесь встал вопрос сделать клик _handler_, а не щелкнуть по кнопке. – Xan

Смежные вопросы