0

我使用此Google Translate API 入门中的以下代码

  <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:无法读取未定义的属性'翻译'”

请告诉我如何解决此错误,

谢谢,

4

1 回答 1

0

我收到了来自告诉我如何解决此错误的人的消息,

我想我能够复制你的错误,但只有一次——这个例子对我有用,有多种翻译语言等等。在我运行 Chrome 开发者控制台之前,我以为我只看到了一次错误。我确实尝试将 console.log(response) 添加到 translateText() 回调,但这也没有再次显示错误。尝试在您的示例中查看您可以在 // ERROR SHOW HERE 处登录的内容。

当然,文档中的示例是非常脆弱的代码——我可以想象在某些情况下数据成员不存在,只是一个错误。例如:

// 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;

}

谢谢,

于 2013-08-14T09:39:01.300 回答