В последнее время сообщается, что контекстное меню моего приложения исчезло.Если вы удалите приложение и переустановите его, оно работает.Но исчезновение происходит снова.
Я нашел ошибку.Я не уверен, что ошибка вызывает исчезновение контекстного меню.Но я бы хотел исправить это, потому что все, что я нашел, это:
Это приложение показывает тексты, которые вы выбираете на странице.Когда вы выбираете текст на обычной странице и нажимаете кнопку действия браузера, это работает без ошибок.Но если вы попробуете это в 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});
}
});