Страницы

Поиск по вопросам

вторник, 10 декабря 2019 г.

Как кроссбраузерно открыть и закрыть дропдаун у select на js?

#javascript #html5


Делаю нечто вроде вебвизора в яндекс-метрике. html менять не могу, он в теории может
быть с любого сайта, как и css. Поэтому открыть/закрыть нужно именно dropdown, подмена
селекта и изменение size не подходят. В хроме более-менее получается. Как это сделать
кроссбраузерно? 



var open=false;
function simulate_mousedown(el) {
	if (document.createEvent) {
		var event = document.createEvent('MouseEvent');
		event.initMouseEvent('mousedown', true, true, window, 2, select.offsetLeft, select.offsetTop,
select.offsetLeft, select.offsetTop, false, false, false, false, 0, null);
		el.dispatchEvent(event);
	} else if (el.fireEvent) {
		el.fireEvent("onmousedown");
	}
}
function simulate_mouseup(el) {
	if (document.createEvent) {
		var event = document.createEvent('MouseEvent');
		event.initMouseEvent('mouseup', true, true, window, 2, select.offsetLeft, select.offsetTop,
select.offsetLeft, select.offsetTop, false, false, false, false, 0, null);
		el.dispatchEvent(event);
	} else if (el.fireEvent) {
		el.fireEvent("onmouseup");
	}
}
document.getElementById('b').onclick=function(e){ 
	open=!open;
	if(open)
	simulate_mousedown(document.getElementById('select'));
	else //????
	simulate_mouseup(document.getElementById('select'));
}





    


Ответы

Ответ 1



Стандартных методов для открытия и закрытия у элеменета