Разработка расширения Chrome: вызов метода во всплывающем окне из background_html

#javascript #google-chrome #popup

#javascript #google-chrome #всплывающее окно

Вопрос:

У меня есть всплывающее окно с именем mf_popup.html , и моя фоновая страница называется mf_background.html .

При запуске браузера запускается моя фоновая страница (насколько я понимаю, я новичок в разработке Chrome), и я хотел бы вызвать функцию на моей mf_popup.html странице со своей фоновой страницы.

Например:

 Start chrome

background page fires

background page calls some function in popup page (which initiates some stuff)
  

Как мне сделать вышеописанное?

Ответ №1:

если вы разместите необходимый код в обоих html-файлах в mf_javascript.js и включает скрипт в оба с помощью этой строки:

 <script type="text/javascript" src="mf_javascript.js">
  

Комментарии:

1. Так просто! Иногда так легко пропустить лес из-за всех деревьев на пути 🙂 Спасибо за вашу помощь

2. Как насчет передачи сообщений? Разве это не должно быть стандартом?

Ответ №2:

mf_popup.html

 //sendRequest([any type] request, [function] responseCallback)
chrome.extension.sendRequest({
    function: "foo", 
    params: [myParam1, myParam2],
    function(response) {
      alert("foo returns:" response.result ");
    }
});
  

mf_background.html

 chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) {
        if(request.function == "foo") 
            var bar = foo(request.params[0], request.params[1]);
        sendResponse({result: bar});
    }
);
  

Вы также могли бы просто использовать sendRequest («foo»), если вы не хотите отправлять какие-либо параметры и / или использовать функцию обратного вызова.