我曾經使用谷歌翻譯的V1。在我的JavaScript中,我將在頁面加載後循環訪問元素集合,翻譯文本並將結果輸出到相應的文本框中。 Im努力在付費API的V2中實現相同的功能(啓用計費)。用谷歌翻譯V2回撥
這就是我所做的V1,在一個循環中:
google.language.translate(lookupText, 'gb', 'fr', function (result) {
if (!result.error) {
ctlSuggestion.innerText = result.translation;
}
});
這個工作很好,因爲回調函數被嵌入的要求,所以我可以更新正確的元素的innerText一旦結果出來背部。
在V2中似乎沒有類似的方法。我試圖使用jQuery的Ajax,但我得到了一個「訪問被拒絕」的消息,我想這是因爲它的跨域調用或東西:
$.ajax({
type: "GET",
url: "https://www.googleapis.com/language/translate/v2",
data: { key: "API-KEY", source: "en", target: "fr", q: lookupText },
dataType: 'json',
success: function (data) {
alert(data.data.translations[0].translatedText);
},
error: function (data) {
alert('fail');
}
});
我可以得到REST方法的工作,但在回調函數有沒有辦法知道什麼控制的請求來自何處:
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
var sourceText = "Hello World"
var source = 'https://www.googleapis.com/language/translate/v2?key=API-KEY=en&target=de&callback=translateText&q=' + sourceText;
newScript.src = source;
// When we add this script to the head, the request is sent off.
document.getElementsByTagName('head')[0].appendChild(newScript);
function translateText(response) {
alert(response.data.translations[0].translatedText);
}
如果我能傳遞一個額外的參數到回調函數,然後我可以指定要更新的控制,但我不認爲這是可能使用這種方法。
什麼是查找文本和我們給數據的位置 – Raghurocks 2012-11-06 13:52:13
完美!你保存了我的日子:-) – Zax 2015-05-22 07:53:50