我使用了此Google Translate API's Get Started
中的以下代码 <head>
<title>Translate API Example</title>
</head>
<body>
<div id="sourceText">Hello world</div>
<div id="translation"></div>
<script>
function translateText(response) {
// ERROR SHOW HERE
document.getElementById("translation").innerHTML += "<br>" + response.data.translations[0].translatedText;
}
</script>
<script>
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
var sourceText = escape(document.getElementById("sourceText").innerHTML);
var source = 'https://www.googleapis.com/language/translate/v2?key=MY-KEY&source=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);
</script>
</body>
我收到错误“TypeError:无法读取未定义的属性'翻译'
请告诉我如何解决此错误,
谢谢,
答案 0 :(得分:0)
我收到了告诉我如何修复此错误
的消息我认为我能够复制您的错误,但只能复制一次 - 该示例适用于我,使用各种翻译语言等等。在我运行Chrome开发者控制台之前,我以为我只看过一次错误。我确实尝试将console.log(响应)添加到translateText()回调中,但是也没有再次显示错误。尝试查看您可以登录的内容//错误显示在您的样本中。
当然,文档中的示例是非常脆弱的代码 - 我可以想象有些情况下数据成员不存在,只有错误。 e.g:
// API callback
translateText({
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid Value",
"debugInfo": "Target language is not set to a valid language code:…\n"
}
],
"code": 400,
"message": "Invalid Value"
}
}
);
而且,这真的很好,
需要添加“console.log(response)”,如下代码:
<script>
function translateText(response) {
console.log(response);
document.getElementById("translation").innerHTML += "<br>" + response.data.translations[0].translatedText;
}
谢谢,