【发布时间】:2012-10-15 11:01:31
【问题描述】:
我在我的一个网站上使用谷歌翻译小部件,并使用以下谷歌提供的代码:
<div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<script>
我的问题:翻译在页面加载后运行,但我还有一个脚本,可以根据主要导航元素的宽度自动调整它们的大小。
这会在翻译完成之前运行,因此它会根据未翻译的英文标签调整大小。一旦翻译改变了导航措辞,导航元素需要调整大小以适应新翻译的单词,因为它们的大小(宽度)可能与英文不同。
我在运行代码以调整主导航的大小之前尝试调用 Google 翻译代码,但翻译异步运行,因此我的代码在翻译完成之前运行。
翻译完成时是否会引发回调事件(或以某种方式检测翻译何时完成),所以我可以在尝试调整导航大小之前等待?
另外,我需要在页面完成翻译后运行一个脚本。
【问题讨论】:
-
我没有任何示例,但您可以尝试在 googleTranslateElementInit.. 中添加函数调用? IE。功能 googleTranslateElementInit() { 新 google.translate.TranslateElement(...); myFuncInvocation(); }
-
试过那个 Eric,在我的代码之前调用谷歌翻译也有同样的问题。它异步运行,因此立即从 google.translate.TranslateElement() 调用返回(即在翻译完成之前) - 我会更新我的问题
-
老实说,我宁愿看一个它运行的例子。您可以做的是在 webkit 中的“新 google.translate..”中放置一个断点并尝试调试,看看是否可以添加处理程序或可能调用可选的默认现有处理程序。
-
当 googleTranslateElementInit 函数被执行时......它调用了什么事件......
标签: javascript google-translate