2015-10-18 2 views
0

Я хочу представить страницу https://translate.yandex.com/m/translate пользователю с предварительно выбранным исходным и конечным языками. Я могу получить доступ к интересному элементу, подобному этомуВыберите элемент `li` в` listbox` (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 за советом.