在 Chrome 的contextMenus API 中,onClicked 事件的回调函数中不会直接提供链接文本的属性。但是,你可以通过其他方法获取链接文本。

一种方法是在onClicked 事件中使用chrome.tabs API 来获取当前所选文本。以下是一个示例代码:

chrome.contextMenus.onClicked.addListener(function(info, tab) {
  // 判断右键菜单的类型是链接
  if (info.linkUrl) {
    // 使用chrome.tabs API获取当前tab中的选中文本
    chrome.tabs.executeScript(tab.id, { code: 'window.getSelection().toString();' }, function(selection) {
      var selectedText = selection[0];
      console.log(selectedText);
    });
  }
});

在这个例子中,我们首先检查info 对象中的linkUrl 属性是否存在,以确定右键菜单的类型是链接。然后,我们使用chrome.tabs.executeScript 方法在当前标签页中执行一段脚本,这段脚本会返回选中的文本。最后,我们将选中的文本保存在selectedText 变量中,并在控制台中打印出来。

请注意,使用chrome.tabs.executeScript 方法需要在 manifest.json 文件中的permissions 部分添加'tabs' 权限。

另外,你也可以通过使用chrome.contextMenus API 的create 方法来创建自定义右键菜单项,并在onclick 回调函数中获取链接文本。这种方法可以更灵活地处理不同类型的右键菜单项。下面是一个示例代码:

chrome.contextMenus.create({
  title: '获取链接文本',
  contexts: ['link'],
  onclick: function(info, tab) {
    // 使用chrome.tabs API获取当前tab中的选中文本
    chrome.tabs.executeScript(tab.id, { code: 'window.getSelection().toString();' }, function(selection) {
      var selectedText = selection[0];
      console.log(selectedText);
    });
  }
});

在这个例子中,我们创建了一个名为'获取链接文本' 的右键菜单项,并指定了contexts['link'],表示该菜单项只在链接上显示。当用户点击该菜单项时,onclick 回调函数会被触发,然后使用chrome.tabs.executeScript 方法获取选中的文本,并保存在selectedText 变量中。

希望这些信息对你有帮助!

Chrome 扩展: 如何在右键菜单中获取链接文本

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

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