1

我想在用戶使用google translate dropdown將我的站點翻譯成另一種語言之後執行jQuery功能。以下是我已經沒有運氣嘗試:爲Google翻譯添加jquery事件偵聽器

在一個普通的下拉,這將正常工作,但我有麻煩瞄準谷歌翻譯格..因爲我在iframe相信它。反正有沒有針對在iframe中使用jquery的div呢?或者,也許另一個解決方法?如果任何人有任何想法,這將不勝感激。

回答

0

我也剛剛將Google Translate小部件添加到我的網站,當然,它打破了佈局!

所以我回顧了小部件使用的腳本。

首先,您無法向該按鈕添加事件偵聽器,因爲Google Translate小部件已經分配了一個。

其次,我發現它翻譯後,GT小部件設置標籤有一個類。

所以,我給了我的標籤ID爲「docstart」,並創建了以下腳本。

注:這打破火狐21節,但它在IE 9的作品 我沒有任何其他瀏覽器進行了測試。

function LayoutFix() { 
// code here to fix your layout 
myListener(); 
}; 
function waitForGoogle() { 
setTimeout (function myListener() { 
var e = document.getElementById('docstart').className; 
var l = e; 
window.setInterval(function() { 
var cN = e.className; 
if (cN !== l) 
// Call function to fix the layout on class change 
LayoutFix(); 
// Set a 10 second iteration 
},10000); 
// Set a 10 second wait for GT widget to load 
},10000); 
} 
// Finally, load the listener on document.ready() 
$(document).ready(waitForGoogle); 
0

我知道這是舊的,但我最近一直在這方面的工作,它可能會幫助一些。

與您的代碼的問題是,你是不會在文件準備好&點存在的元素結合你的聽衆雖然.change()方法在技術上是對.on()快捷方式你都沒有在DOM足夠高以允許這個'未來'加入到dom中。

所以你的代碼應該是:

$('#google_translate_element').on('change','select.goog-te-combo',function(e){ console.log($(this).val()); /* or alert($(this).val()); */ }); 

這將允許選擇框有當它是由谷歌添加更改偵聽器綁定。

它工作完美的網站,我目前的工作。