Управление всплывающими окнами с расширением DOM - PullRequest
0 голосов
/ 04 июня 2018

Я новичок в работе над расширением Chrome и ищу руководство.

В данный момент я пытаюсь загрузить данные, поступающие от вызова API, в раскрывающемся меню во всплывающем окне моего расширения..

Пока данные поступают из API, я не могу получить доступ к всплывающему DOM.Я слышал, что должен использовать sendMessage, но не могу найти правильное объяснение, почему и как.

Вот что у меня есть:

popup.html

<html>
<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div class="search_panel">
            <div class="logos" id="head_b">
                <img src="chrome-extension://hfbigccdfoeegoicoioalffcngoekege/img/tedBtn.png" alt="" class="logo_explicite">
            </div>
            <p id="hep">p</p>
            <div class="form">
                <fieldset>
                    <label for="subject" class="subject_label">Sujets</label>
                    <select name="subject" id="subject" placeholder="Sélectionnez un sujet">
                        <option value="" data-keywords="" data-desc="" selected>select subjects</option>
                        <option value="Sujet 1" data-desc="bla blabla bla">subject 1</option>
                        <option value="Sujet 2" data-desc="bla blabla bla">subject 2</option>
                    </select>
                </fieldset>
            </div>
    </div>

    <script type="text/javascript" src="popup.js"></script>
</body>
</html>

popup.js

function load() {
  chrome.tabs.executeScript({
    file: 'load.js'
  }); 
}

load();

load.js

var xhr = new XMLHttpRequest();

    xhr.open("GET", "https://url/api/subject/list", false);
    xhr.send();

    var result = xhr.responseText;
    var obj = JSON.parse(result);
    console.log(obj); 

    var select = $('#subject');
    console.log(select); //undefined



    // for(index in obj) {
    //     select.options[select.options.length] = new Option(obj[index], index);
    // }
    console.log(rep);

manifest.json

{
"name": "-",
"description": "-",
"version": "0.1",
"permissions": [
    "tabs","<all_urls>",
    "https://url/*",
    "http://url/*"
    ],
"browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
    },
"web_accessible_resources": [
    "img/*.png",
    "reponses.json"
  ],
"content_scripts": [
    {
    "css": [ "style.css"],
    "matches": [
        "http://twitter.com/*",
        "https://twitter.com/*"
        ],
    "js": ["jquery.min.js", "content.js"]
    }
],


"background" : { "scripts": ["background.js", "popup.js"] },

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