我需要翻譯textarea
中的文本。當我按下space
鍵時,會在該字段&中的文本中進行ajax請求,然後替換爲響應文本。textarea - 將光標移到光標前並替換它
但是,如果我只是在空格&之前用單個單詞進行ajax請求,那麼將會更好,然後用響應詞替換該單詞。這樣我可以逐字地翻譯&,這正是我需要的。
任何想法?如果您有任何問題,請分享。
我需要翻譯textarea
中的文本。當我按下space
鍵時,會在該字段&中的文本中進行ajax請求,然後替換爲響應文本。textarea - 將光標移到光標前並替換它
但是,如果我只是在空格&之前用單個單詞進行ajax請求,那麼將會更好,然後用響應詞替換該單詞。這樣我可以逐字地翻譯&,這正是我需要的。
任何想法?如果您有任何問題,請分享。
功能如果空格鍵被按壓(鍵代碼32)getLast返回最後一個字中的textarea
function getLast(o) {
return ("" + o).replace(/[\s-]+$/, '').split(/[\s-]/).pop();
}
,然後調用textarea的值的getLast功能。然後讓一個AJAX調用傳遞最後一個字作爲變量。
$('#textArea').keyup(function(e) {
if (e.keyCode == 32) {
var textArea = $('textArea');
var word = getLast(textArea.val());
$.ajax({
type: "POST",
url: "index.cfm?fuseaction=user.test2",
data: {
currentWord: word
}
}).done(function(translation) {
var translatedWord = $.trim(translation);
var string = textArea.val();
string = string.replace(word, translatedWord);
textArea.val(string);
});
}
});
但是,我覺得你最好的選擇是在整個文字結尾處翻譯整個textarea。
+1,看起來不錯!更新單詞怎麼樣?如果我繼續打字並且不等待響應被替換,該怎麼辦? – sha256
我想你知道如何檢索文本輸入中的字符串。
要隔離最後一個單詞,必須在字符串末尾附近尋找包含單詞字符的非單詞字符。我建議使用Regular Expressions
備註:這不是一個答案元素,但我認爲逐字逐句翻譯不是一個好主意,並且將翻譯輸出放在與輸入相同的區域可能會非常痛苦。您應該進行全局翻譯,並將輸出結果顯示在屏幕上的其他位置,並在輸入發生變化時更新它,例如Google翻譯。
但是,如果您發佈代碼會更好 –
我嘗試了我在第一段中所說的內容。還沒有嘗試過第二段。需要想法。 – sha256