要实现这个需求,可以使用'chrome.contextMenus.onShown'事件来检查是否有选中的文本,并根据结果来启用或禁用菜单。

首先,你需要在创建菜单时添加一个'contexts'参数,指定菜单的作用域为'selection'和'all':

chrome.contextMenus.create({
  title: 'My Menu',
  contexts: ['all', 'selection'],
  id: 'myMenuId'
});

然后,监听'chrome.contextMenus.onShown'事件,并在事件回调函数中检查是否有选中的文本:

chrome.contextMenus.onShown.addListener(function(info, tab) {
  if (info.selectionText) {
    chrome.contextMenus.update('myMenuId', { enabled: true });
  } else {
    chrome.contextMenus.update('myMenuId', { enabled: false });
  }
});

在上面的代码中,我们使用'chrome.contextMenus.update'方法来更新菜单的状态。如果有选中的文本,我们将菜单设置为启用状态('enabled: true'),否则设置为禁用状态('enabled: false')。

这样,菜单将在选中文本时启用,在没有选中文本时禁用。


原文地址: https://www.cveoy.top/t/topic/hF1w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录