我目前正在制作具有众多辅助工具的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});'});
}
非常感谢任何建议。