我正在使用来自http://www.microsofttranslator.com/dev/的 Microsoft Translation api(AJAX 版本)
我在闭包和回调方面遇到了一些问题,我希望这段代码能够证明:
function translate(original){
window.translateComplete = function(language) {
if (language!="en"){
alert(original +" "+language);
}
}
var windowsliveid = 'API_KEY_REMOVED';
var el = document.createElement("script");
el.src = 'http://api.microsofttranslator.com/V2/Ajax.svc/Detect';
el.src += '?oncomplete=translateComplete';
el.src += '&appId=' + windowsliveid;
el.src += '&text=' + escape (original);
document.getElementsByTagName('head')[0].appendChild (el);
}
translate("Au Revoir");
translate("Hola");
现在,我的回复是
Hola es
Hola fr
original
在回调有机会执行之前,变量被覆盖。
我该如何避免这种情况,以便它显示如下内容:
Hola es
Au revoir fr
我试图在不使用 jQuery 和 when() 的情况下做到这一点
谢谢