Доступ jQuery через Chrome Ext.Слои - PullRequest
0 голосов
/ 30 марта 2011

У меня особенно странная проблема при разработке расширений Chrome с использованием jQuery.У меня есть две "рамки" в моем расширении, всплывающая страница и фоновая страница.Обе эти страницы включают в себя библиотеку jQuery.По сути, я хотел бы, чтобы, когда пользователь нажимал на значок действия браузера, отображался экран загрузки, в то время как фоновая страница собирает данные и затем отправляет их обратно на всплывающую страницу.Я попытался сделать это, заставив всплывающую страницу вызвать функцию на фоновой странице, а затем заставить фоновую страницу использовать домен всплывающего окна для доступа к данным и отображения в пользовательском интерфейсе.Однако я заметил, что когда вы возвращаете объект Window из chrome.extension.getView (), он по какой-то причине не имеет доступа к библиотеке jQuery.Любой вызов «$» встречается с ошибкой «метод не найден».Так что будет лучшим способом справиться с этим?

1 Ответ

1 голос
/ 30 марта 2011

Я бы сделал это, используя разбор сообщения .По сути, вы добавляете функцию прослушивателя на фоновую страницу, подобную этой: (слегка упрощенный пример со страницы документации)

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) 
    {
        console.log("Received a request!");
        if (request.message == "hello")
            sendResponse({message: "goodbye"});
    });

Фоновая страница извлекает информацию и возвращает ее всплывающему окну, используя sendResponse.function.

Затем в вашем всплывающем окне вы реализуете что-то вроде этого:

chrome.extension.sendRequest({message: "hello"}, function(response) {
    console.log(response.message);
});

Сообщения (части {message: "hello"}) могут быть любым JSON-совместимым объектом.

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