在网站上,我尝试使用以下代码添加Google翻译下拉列表:
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en'
}, 'google_translate_element');
}
<script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
当您从谷歌脚本插入的下拉列表中选择时,页面顶部会显示一个Google翻译栏,并且所有文本都会翻译成所选语言。
但是,如果我尝试使用JavaScript触发下拉列表更改,则无效:
$('.goog-te-combo').val('fr')
从下拉列表中选择“法语”,但不会触发Google翻译。
为什么为什么它不起作用?我也试过了:
$('.goog-te-combo').trigger('click')
$('.goog-te-combo').change()
更新:仅供参考,这不是我的网站。我使用Chrome控制台加载jQuery并执行jQuery方法。
答案 0 :(得分:9)
您可以让您的下拉菜单重新加载页面。您可以重新加载页面,其中#googtrans(en|ja)
或#googtrans/en/ja
附加到网址,或者在重新加载之前将googtrans Cookie值设置为/en/ja
(其中ja是所选目标语言的示例)。
答案 1 :(得分:5)
我知道这已经是一个古老的主题了,但我只想分享解决方案,我提出解决谷歌翻译选择元素更改事件的问题。
添加将使用dispatchEvent或fireEvent函数的函数:
function triggerHtmlEvent(element, eventName) {
var event;
if(document.createEvent) {
event = document.createEvent('HTMLEvents');
event.initEvent(eventName, true, true);
element.dispatchEvent(event);
} else {
event = document.createEventObject();
event.eventType = eventName;
element.fireEvent('on' + event.eventType, event);
} }
设置值后,获取用于select的DOM对象(使用document.getElement ...)并调用上面的函数:
triggerHtmlEvent(selectObject, 'change');
答案 2 :(得分:4)
//获取当前选定的语言
string language=Request.Cookies["googtrans"].Value
//设置所需的语言
Response.Cookies["googtrans"].Value = Your language;
//例如:Response.Cookies [“googtrans”]。Value =“/ en / hi”;
答案 3 :(得分:3)
将此添加到您的代码中:
//to get currently selected language
string language=Request.Cookies["googtrans"].Value
//to set desired language
Response.Cookies["googtrans"].Value = Your language;
//eg: Response.Cookies["googtrans"].Value = "/en/hi";
答案 4 :(得分:1)
在查看您的页面时,似乎未加载jQuery,因此您将无法使用$()
函数。
您需要在<head></head>
部分添加对jQuery的引用,例如:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
然后
$('.goog-te-combo').val('fr');
应该有用。
答案 5 :(得分:1)
我花了很多时间试图让它工作,我实现了jquery翻译插件,并且能够轻松实现我想要做的一切,包括在页面加载和可点击语言链接上自动翻译成浏览器语言,旗帜等。
插件和下载的详细信息在http://code.google.com/p/jquery-translate/
答案 6 :(得分:0)
我在这里写的正确使用方法。谷歌翻译使用选择“ select.goog-te-combo”设置更改功能,如果您仅使用类,则JS不会调用正确的侦听器。 @joeyend起作用,因为该函数标识了真正的“选择器”。
var trans = jQuery('select.goog-te-combo');
trans.val('fr')
trans.change();