javascript - 需要从当前选项卡中以字符串形式获取选定的文本

标签 javascript html google-chrome-extension

这是我目前拥有的代码:

var clicked = function(){
    var selection
    chrome.tts.speak(selection, {'lang': 'en-US', 'rate': 0.8, 'enqueue': true});
}
chrome.contextMenus.create({
  "title" : "Say '%s'!",
  "type" : "normal",
  "contexts" : ["selection"],
  "onclick" : clicked()
});

我需要从当前选项卡中获取选择。我不知道如何得到它。 有人可以帮忙吗?

最佳答案

两个问题:

  1. 不要调用 clicked(),而是通过省略括号来传递函数引用。
  2. 变量选择可从function's parameters获得。在文档中,该对象被描述为 OnClickData 。所需的信息存储在 selectionText 键中。

应用这些修复后的代码:

// Background page
var clicked = function(info, tab) {
    var selection = info.selectionText;
    chrome.tts.speak(selection, {'lang': 'en-US', 'rate': 0.8, 'enqueue': true});
};
chrome.contextMenus.create({
  "title" : "Say '%s'!",
  "type" : "normal",
  "contexts" : ["selection"],
  "onclick" : clicked
});

关于javascript - 需要从当前选项卡中以字符串形式获取选定的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914519/

相关文章:

javascript - 删除html表格行最后一个单元格的内容

javascript - 在其他选项卡上的一个 Web 浏览器实例中登录到应用程序

javascript - 预加载图像的替代方法

html - CSS - 媒体查询 - 无法设置显示 : none for div element

javascript - XMLHttpRequest 在 6 次后停止发送

javascript - 如何从 Chrome 扩展中插入的 HTML 元素调用 Javascript 函数?

JavaScript 通过属性删除对象数组中的元素

javascript - Swiper Slider - 带有多行幻灯片的无限循环

javascript - 停止滚动条上的可拖动功能

javascript - 为 Chrome 扩展程序指定 native 消息传递主机