【发布时间】:2015-11-07 20:29:13
【问题描述】:
我正在尝试为我的网站编写一个翻译框。到目前为止,我已经能够从教程中获得工作代码:
<input id="ori" type="text" />
<button onclick="translate();">Translate</button>
<div id="trans"></div>
<script>
var languageFrom = "en";
var languageTo = "fr";
function translate() {
document.getElementById('trans').innerHTML="Translating... please wait";
var text= document.getElementById('ori').value;
window.mycallback = function(response) {
document.getElementById('trans').innerHTML=response;
}
var s = document.createElement("script");
s.src = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate?oncomplete=mycallback&appId=<MY-APP-ID>&from=" + languageFrom + "&to=" + languageTo + "&text=" + text;
document.getElementsByTagName("head")[0].appendChild(s);
}
</script>
(从这里编写脚本:http://wizardsoweb.com/microsoftbing-translator-ajax-example/2011/05/?wpmp_switcher=desktop)
基本上,一旦我填写了我的 APPID,它就会将 ori 文本框中的文本翻译成法语。当然,这一切都很好,但这是我想要做的:
我希望有两个下拉菜单。一个将使用指定语言填充languageFrom 变量,另一个下拉菜单将使用指定语言填充languageTo 变量。
我已经在另一个帖子中发布了关于这个问题的帖子:Update script var's with value from drop down?。这样,当您从下拉菜单中选择一个值时,它会填充该变量。我在 jsFiddle 上有一个这样的工作示例:
http://jsfiddle.net/charlescarver/hk2bJ/1/
(我包含了我的 API 密钥,这样操作起来更容易)
SO,我认为问题在于控制翻译的脚本在变量为空时加载,然后在选择下拉选项时不更新。
我认为这可以通过在单击按钮而不是加载页面时调用脚本来解决。如何实现?微软的支持记录很差,我在那里或谷歌上找不到解决方案。这是 API 文档的链接:http://msdn.microsoft.com/en-us/library/ff512385.aspx
【问题讨论】:
标签: javascript html api microsoft-translator