我正在为一个包含多种语言内容的网站开发一些 JavaScript。我想使用 Google Translate API 来允许用户选择一个单词(或短语)并自动提供翻译。目前,我只是让它提醒测试结果。
这就是我目前所拥有的: google.load("language", "1");
function getSelection() {
var selection = (!!document.getSelection) ? document.getSelection() :
(!!window.getSelection) ? window.getSelection() :
document.selection.createRange().text;
if (selection.text)
selection = selection.text
console.log(selection);
return selection
}
$(document).ready(function() {
$(window).mouseup(function() {
var selection = getSelection();
if (selection != "") {
google.language.translate(selection, "", "en", function(result) {
if (!result.error) {
alert(result.translation);
} else {
alert(result.error);
}
});
}
});
});
我遇到的问题是我的 getSelection() 函数返回一个 Range 对象,这显然与谷歌的 language.translate() 函数不兼容。我真正需要的是一种从 Range 中检索实际文本作为字符串的方法,以便我可以传递它。据我所知,有一些非常简单、明显的方法可以做到这一点,但我只是想念它(是的,我尝试使用 selection.text),但我对 JavaScript 的经验是有限的,谷歌搜索它并没有发现任何有用的东西。
任何人都可以帮忙吗?