расширение Chrome onMessage обратный вызов выполнить функцию JS на странице вне расширения - PullRequest
0 голосов
/ 11 октября 2019

Я хочу выполнить на странице js функцию вместо обработки всей логики в расширении

сценарий содержимого

document.addEventListener("MY_EVENT", function (data) {
   chrome.runtime.sendMessage("myextid");
});

chrome.extension.onMessage.addListener(function (msg, sender) {
 //***********
 //want to move below logic to page instead of here
 //As modifying/uploading extesion is difficult than on page js
 //what I want is call here 
 //extResponse(msg);
 //instead of below code, but it says undefined function
 if (msg.action == 'MY_DATA') {
    $('#txt1').val(msg.id);
    $('#txt2').val(msg.name);
    $('#txt3').val(msg.email);
    $('.myClass').addClass('stop-spining').removeClass('text-center');
 }
 //***********
});

mypage.html

<html>
 <body>

   <script>
      function extResponse(msg){
        //I want to handle all logic here....
      }
   </script>
 </body>
</html>

1 Ответ

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

Что происходит, так это то, что скрипты контента запускаются в изолированной среде со страницы. Вы можете получить доступ к элементам DOM из скрипта контента , но вы не можете вызывать код JavaScript внутри страницы из скрипта контента. Извлечение https://developer.chrome.com/extensions/content_scripts Вам необходимо внедрить свой код в контекст страницы, здесь вы найдете хорошее руководство Вставьте код в контекст страницы, используя скрипт содержимого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...