Рендеринг контекстного меню в зависимости от выбора - PullRequest
2 голосов
/ 17 сентября 2011

Я хочу отобразить другую опцию меню в зависимости от того, выбран ли номер или текст.

Я пробовал играть со скриптами контента, но не могу заставить их работать в gmail, где янужно, чтобы это работало.Вот что у меня есть, он работает на сайтах, отличных от Gmail (это https?)

Background.html

<script src="driver.js"></script>

content_script.js

document.addEventListener("mousedown", function(event){
  if(event.button == 2) {
    var selection = window.getSelection().toString();
    chrome.extension.sendRequest({cmd: selection});
  }

}, true);

driver.js

chrome.extension.onRequest.addListener(function(request) {
    alert(request.cmd);
});

manifest.json

{
"name": "Context Menu Search",
"description": "Opens the selected text as keyword in a new window",
"version": "0.1",
"permissions": ["contextMenus"],
  "content_scripts": [
    {
      "matches": ["http://*/*","https://*/*"],
      "js": ["content_script.js"]
    }
  ],
"background_page": "background.html"
}

1 Ответ

1 голос
/ 18 сентября 2011

Тип выбора изменяет контекстное меню с использованием расширения Chrome

Вам нужно установить слушателя для мыши вниз. Нет другого способа получить выделенный текст до создания меню.

Смотрите этот ТАК вопрос:

контекстные меню расширений Chrome, как отображать пункт меню только при отсутствии выбора?

Вот часть кода, остальное по ссылке.

document.addEventListener("mousedown", function(event){
//right click
if(event.button == 2) {
    if(window.getSelection().toString()) {
        chrome.extension.sendRequest({cmd: "createSelectionMenu"});
    } else {
        chrome.extension.sendRequest({cmd: "createRegularMenu"});
    }
   }
}, true); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...