Расширение Chrome: не отмечено runtime.lastError: Не удалось установить соединение. Получающий конец не существует - PullRequest
0 голосов
/ 19 марта 2019

В последнее время сообщается, что контекстное меню моего приложения исчезло.Если вы удалите приложение и переустановите его, оно работает.Но исчезновение происходит снова.

Я нашел ошибку.Я не уверен, что ошибка вызывает исчезновение контекстного меню.Но я бы хотел исправить это, потому что все, что я нашел, это:

Это приложение показывает тексты, которые вы выбираете на странице.Когда вы выбираете текст на обычной странице и нажимаете кнопку действия браузера, это работает без ошибок.Но если вы попробуете это в Google Docs, вы получите ошибку "Unchecked runtime.lastError: Не удалось установить соединение. Не получен конец."

Боюсь, я не знаю, что делать сэтот.И у меня могут быть две проблемы.Будет очень полезно, если вы дадите мне несколько советов.

[manifest.js]

{
    "manifest_version": 2,
    "name": "Test Chrome Extension",
    "short_name": "Test",
    "version": "1.0",
    "description": "This is a test.",
    "icons": {
        "128": "128.png"
    },
    "content_scripts": [{
        "matches": ["<all_urls>"],
        "js": ["googleDocsUtil.js", "content_scripts.js"]
    }],
    "background": {
        "scripts": ["background.js"],
        "persistent": true
    },
    "browser_action": {
        "default_icon": {
            "48": "48.png"
        },
        "default_title": "Test Chrome Extension"
    },
    "permissions": [
        "contextMenus",
        "tabs",
        "background",
        "http://*/*",
        "https://*/*"
    ]
}

[background.js]

chrome.contextMenus.create({
    type: 'normal',
    id: 'testchromeextension',
    title: 'Test Chrome Extension',
    contexts:['selection']
});

chrome.contextMenus.onClicked.addListener(function(info,tab){
    if( info.menuItemId == 'testchromeextension' ){
        var selectedText = info.selectionText.replace(/ /g, "\n");
        doSomething(selectedText);
    }
});

chrome.browserAction.onClicked.addListener( function(tab) {
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        chrome.tabs.sendMessage(tabs[0].id, {method: "getSelection"}, function(response) {
            doSomething(response.data);
        });
    });
});

function doSomething(selectedText) {
    console.log(selectedText);
}

[content_scripts.js]

chrome.runtime.onMessage.addListener( function(request, sender, sendResponse) {
    if (request.method == "getSelection") {
        var post_val = window.getSelection().toString();
        if ( !post_val ) {
            var googleDocument = googleDocsUtil.getGoogleDocument();
            post_val = googleDocument.selectedText;
        }
        sendResponse({data: post_val});
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...