Невозможно инициировать события на активной веб-странице с помощью скриптов содержимого в расширении Chrome - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь вызвать событие щелчка на активной веб-странице через скрипт содержимого расширения Chrome. Хотя код внедряется в веб-страницу, и операторы предупреждений из кода дают мне результаты, событие click не может вызвать существующее событие слушателя, и я не могу получить желаемый эффект.

мой код сценария содержимого, который я вводю:

var script = "var x = document.getElementsByClassName('map-ui');\
              var listOfSuperBlocks = x[0].getElementsByClassName('superblock');\
              alert('Alert gets triggered in the main page');\
              console.log('This gets printed');\
              var eventReturn = listOfSuperBlocks[6].dispatchEvent(new MouseEvent('click'));\
              console.log('No click event gets triggerd in main page. Value of eventReturn is true');\
              alert('This alert also gets triggerd');";

var scriptElement = document.createElement("script");
scriptElement.innerHTML = script;

document.head.appendChild(scriptElement);

Как уже упоминалось, предупреждающие и консольные сообщения печатаются, как и ожидалось. Но событие click не инициируется, и значение eventReturn равно true.

Это из-за блокировки распространения какого-либо события?

1 Ответ

0 голосов
/ 13 октября 2019

function triggerEvent (el, type) {
var e = document.createEvent ('HTMLEvents');e.initEvent (type, false, true);

el.dispatchEvent (e);
}

triggerEvent(listOfSuperBlocks[6],"mousedown")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...