Javascript 开发人员控制台中的Google translate发回错误
我正在为一个网站设置google translate,在您选择语言为西班牙语大约30秒后,我在开发人员控制台中收到此错误。然后列表框停止进一步翻译 网址: 错误:Javascript 开发人员控制台中的Google translate发回错误,javascript,google-translate,Javascript,Google Translate,我正在为一个网站设置google translate,在您选择语言为西班牙语大约30秒后,我在开发人员控制台中收到此错误。然后列表框停止进一步翻译 网址: 错误: test.php:49 Uncaught TypeError: Cannot read property 'click' of undefined at translateLanguage (test.php:49) at HTMLSelectElement.onchange (test.php:16) at
test.php:49 Uncaught TypeError: Cannot read property 'click' of undefined
at translateLanguage (test.php:49)
at HTMLSelectElement.onchange (test.php:16)
at Object.trigger (jquery.min.js:4)
at HTMLSelectElement.<anonymous> (jquery.min.js:4)
at Function.each (jquery.min.js:2)
at n.fn.init.each (jquery.min.js:2)
at n.fn.init.trigger (jquery.min.js:4)
at n.fn.init.n.fn.<computed> [as change] (jquery.min.js:4)
at HTMLAnchorElement.<anonymous> (bootstrap-select.js:656)
at HTMLDivElement.dispatch (jquery.min.js:3)
test.php:49未捕获类型错误:无法读取未定义的属性“click”
在translateLanguage(test.php:49)
在HTMLSelectElement.onchange(test.php:16)
at Object.trigger(jquery.min.js:4)
在htmlselect元素。(jquery.min.js:4)
在Function.each(jquery.min.js:2)
在n.fn.init.each(jquery.min.js:2)
在n.fn.init.trigger处(jquery.min.js:4)
在n.fn.init.n.fn。[作为变更](jquery.min.js:4)
在兰开夏。(bootstrap select.js:656)
在htmldevelment.dispatch(jquery.min.js:3)
代码:
函数googleTranslateElementInit(){
新的google.translate.TranslateElement({pageLanguage:'en',layout:google.translate.TranslateElement.InlineLayout.SIMPLE,autoDisplay:false},'google_translate_element');
}
函数翻译语言(lang){
googleTranslateElementInit();
var$frame=$('.googte菜单框架:第一个');
如果(!$frame.size()){
警报(“错误:找不到谷歌翻译框架。”);
返回false;
}
$frame.contents().find('.goog-te-menu2-item span.text:contains('+lang+'))。获取(0)。单击();
返回false;
}
$(函数(){
$('.selectpicker').selectpicker();
});
在Firefox中似乎工作正常。它工作正常,单击西班牙语30秒后,开发者控制台将抛出一个错误。我担心这个错误。据我所知,有时候,在切换语言时,它实际上无法切换。发生这种情况时没有错误。尝试将语言切换回以前的状态会抛出您看到的错误。所以,如果你从英语开始,切换到其他语言,但失败了,然后尝试切换回英语,你会得到错误。你认为谷歌有可能正在阻止这个请求吗?“切换失败”的问题似乎是因为选择框没有保存它的值。切换到西班牙语后,它会在选择框上恢复为英语。添加cookie很累,但无法解决此问题“保留西班牙语或英语值”这是我添加的,$(function(){$('.selectpicker').selectpicker();document.cookie=('Language=('+lang+'));});但它失败了
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({ pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, autoDisplay: false }, 'google_translate_element');
}
function translateLanguage(lang) {
googleTranslateElementInit();
var $frame = $('.goog-te-menu-frame:first');
if (!$frame.size()) {
alert("Error: Could not find Google translate frame.");
return false;
}
$frame.contents().find('.goog-te-menu2-item span.text:contains(' + lang + ')').get(0).click();
return false;
}
$(function(){
$('.selectpicker').selectpicker();
});
</script>