2015-10-18 66 views
0

我想給用戶提供https://translate.yandex.com/m/translate頁面,使用預先選定的源語言和目標語言。我可以訪問像這樣的有趣元素在`listbox`中選擇`li`元素(JavaScript)

var srcLangContent = document.getElementById("srcLanguagesContent") 
var liToSelect = srcLangContent.children[10] 

接下來我不知道該怎麼辦。我打電話給click(),但它不工作。你能提出一些建議嗎?

P.S.我不能使用jQuery

+0

它看起來像創建整頁選擇(而不是傳統的html選擇)的第三方庫。您可能需要使用api(如果庫有一個)才能使用它來預先選擇一個定義的值。 –

+0

@PhilCooper可能以某種方式模擬用戶操作? – Sk0prion

+1

是的,你可以模擬用戶操作 - 看到這篇文章[如何在JavaScript中觸發事件?](http://stackoverflow.com/questions/2490825/how-to-trigger-event-in-javascript)關於如何做那。問題是,你只會顯示選擇菜單,而不是預先選擇一個值。此外,如果click()不起作用(如您所述),您需要在庫中找到觸發選擇菜單打開的元素。嘗試執行父母和孩子的點擊查看哪一個可能導致選擇顯示。 –

回答

0

這裏是解決方案。

var mouse_down_evt = document.createEvent("MouseEvents"); 
mouse_down_evt.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null); 

var mouse_up_evt = document.createEvent("MouseEvents"); 
mouse_up_evt.initMouseEvent("mouseup", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null); 

liToSelect.dispatchEvent(mouse_down_evt) 
liToSelect.dispatchEvent(mouse_up_evt) 

謝謝@PhilCooper的建議。