bing V2 javascript api 需要回调才能工作。使用jQuery动态添加脚本块(忽略全局命名空间的污染):
function translate(text) {
var txt = "text=" + text;
var lang = "&to=fr";
var appId = "&appid=apikey"; // Add your AppId here
var func = "&oncomplete=window.translated";
$("<script><\/script>")
.attr("src", "http://api.microsofttranslator.com/V2/ajax.svc/Translate?" + txt + lang + appId + func)
.appendTo("HEAD");
}
然后在多个元素上使用点击事件来触发翻译:
$(document).ready(function () {
$('a').click(function () {
var tr = $(this).parent().parent();
var txtin = tr.find('.in').text();
var out = tr.find('.out'); // would like translation inserted here
translate(txtin);
return false;
});
});
最后是 api 所需的回调:
function translated(text) {
$("#translation").text(text);
}
我想指定不同的元素来接收翻译的文本,具体取决于单击哪个元素来启动翻译 - 但是使用上述方法我不能将任何额外的参数传递给 bing,然后在回调中返回。
我应该如何重写它以允许单击 row1 中的 el 将翻译放入 row1 并单击 row2 中的 el 将翻译放入 row2?即在我的点击事件中使用分配给“out”的元素。