Javascript 开发人员控制台中的Google translate发回错误

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

我正在为一个网站设置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 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>