java / lang / NoClassDefFoundError: java / lang / invoke / MethodHandle eclipse juno

Chrome теперь имеет возможность отправлять сообщения с веб-сайта на расширение.

Так что в расширении background.js (content.js не будет работать) добавьте что-то вроде:

chrome.runtime.onMessageExternal.addListener(
    function(request, sender, sendResponse) {
        if (request) {
            if (request.message) {
                if (request.message == "version") {
                    sendResponse({version: 1.0});
                }
            }
        }
        return true;
    });

Это позволит вам сделать звонок с веб-сайта:

var hasExtension = false;

chrome.runtime.sendMessage(extensionId, { message: "version" },
    function (reply) {
        if (reply) {
            if (reply.version) {
                if (reply.version >= requiredVersion) {
                    hasExtension = true;
                }
            }
        }
        else {
          hasExtension = false;
        }
    });

Затем вы можете проверить переменную hasExtension. Единственный недостаток - это асинхронный вызов, поэтому вам нужно как-то обойти это.

Изменить: Как уже упоминалось ниже, вам нужно добавить запись в manifest.json перечисление доменов, которые могут сообщать ваш аддон. Например:

"externally_connectable": {
    "matches": ["*://localhost/*", "*://your.domain.com/*"]
},
7
задан Jesús Ayala 14 October 2013 в 22:30
поделиться