是否可以在chrome.tabs.executeScript()中使用chrome.tts.speak()?

时间:2018-04-07 14:18:46

标签: javascript google-chrome google-chrome-extension text-to-speech

我目前正在制作具有众多辅助工具的Chrome扩展程序,其中一个工具是Text To Speech。到目前为止,我使用chrome.tabs.executeScript(null, code{''}的每个工具,但是文字到语音需要使用chrome.tts.speak()。是否可以在chrome.tts.speak()内使用chrome.tabs.executeScript(null, code{''})

我能够通过使用var text = window.getSelection(); alert(text);从网上获取所选文本,并且文本到语音工具功能确实有效,因为它能够朗读我手动输入的文本。因此问题在于将从Web获取的变量传递给`chrome.tts.speak()'。

我已经尝试过将两者结合起来,但却无法这样做。

尝试1 - return text;在此上下文中不起作用

function getText(e) {
   chrome.tabs.executeScript(null,
   {code:'var text = window.getSelection(); return text;'});
}


function speakText(e) {
  chrome.tts.speak(GetText(), {'lang': 'en-GB', 'gender': 'female', 
 'rate': 1.0});
}

尝试2 - 'var text'执行chrome.tabs.executeScript()

   function getText(e) {
   chrome.tabs.executeScript(null,
   {code:'var text = window.getSelection();'});
   return text;
 }


 function speakText(e) {
  chrome.tts.speak(GetText(), {'lang': 'en-GB', 'gender': 'female', 
 'rate': 1.0});
 }

尝试3 - 如果不使用chrome.tabs.executeScript

,则不会存储来自网络的选择
function getText(e) {
   var text = window.getSelection();
   return text;
}


function speakText(e) {
  chrome.tts.speak(GetText(), {'lang': 'en-GB', 'gender': 'female', 
'rate': 1.0});
}

尝试4 - 打破一切

function getText(e) {
  chrome.tabs.executeScript(null,
  {code:'var text = window.getSelection(); chrome.tts.speak(text, 
{'lang': 'en-GB', 'gender': 'female', 'rate': 1.0});'});
}

非常感谢任何建议。

0 个答案:

没有答案