Joh*_*ops 3 jquery google-translate
由于谷歌翻译api正在关闭,我试图让谷歌翻译网页元素在整个会话中为用户工作,这样他们就不必在每个不同的页面上将选择框选项更改为他们的语言.
初始加载函数如下:
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en'}, "google_translate_element");
};
Run Code Online (Sandbox Code Playgroud)
google_translate_element是放置选择框的div.当选择框在那里时,它总是有"goog-te-combo"类.我可以使用jQuery更改框的值,没有问题,例如.$('.goog-te-combo').val('fr')将该框更改为法语.但是当我尝试使用$('.goog-te-combo').触发器()使用所有排序事件类型(更改,单击,鼠标,mousedown等)来触发翻译时,翻译永远不会触发.
有谁知道触发翻译的方法?
小智 11
这是一个古老的问题,但我会回答,因为我有同样的问题,并解决它.我必须从jQuery获取DOM并激活并执行.
function fireEvent(element,event){
console.log("in Fire Event");
if (document.createEventObject){
// dispatch for IE
console.log("in IE FireEvent");
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else{
// dispatch for firefox + others
console.log("In HTML5 dispatchEvent");
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}
Run Code Online (Sandbox Code Playgroud)
我称之为使用
var jObj = $('.goog-te-combo');
var db = jObj.get(0);
jObj.val(Lang);
fireEvent(db, 'change');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12108 次 |
| 最近记录: |