首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >呈现上下文菜单取决于选择

呈现上下文菜单取决于选择
EN

Stack Overflow用户
提问于 2011-09-17 14:10:44
回答 1查看 1.4K关注 0票数 2

我想显示一个不同的菜单选项,这取决于是否选择了一个数字或文本。

我试过玩内容脚本,但我无法让它们在gmail中工作,这正是我需要它工作的地方。下面是我所拥有的,它可以在gmail以外的站点上工作(这是https的东西吗?)

Background.html

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

content_script.js

代码语言:javascript
复制
document.addEventListener("mousedown", function(event){
  if(event.button == 2) {
    var selection = window.getSelection().toString();
    chrome.extension.sendRequest({cmd: selection});
  }

}, true);

driver.js

代码语言:javascript
复制
chrome.extension.onRequest.addListener(function(request) {
    alert(request.cmd);
});

manifest.json

代码语言:javascript
复制
{
"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"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-18 16:33:28

Selection type changes context menu using chrome extension

你必须为鼠标设置一个侦听器。在创建菜单之前,没有其他方法可以获得选定的文本。

请看这个问题:

chrome extension context menus, how to display a menu item only when there is no selection?

下面是代码的一部分,其余的都在链接处。

代码语言:javascript
复制
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); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7455359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档