Я не надеюсь, но спрошу на всякий случай.
Я хотел бы иметь возможность использовать JavaScript для открытия элемента select в мобильном Safari для iPhone / iPad.
Обширный поиск Google / Stack Overflow показывает, что многие люди хотели бы иметь возможность делать это в браузерах в целом, но это не поддерживается (интересно, почему?). Предлагались различные уловки, от вызова Я подумал, может быть, кто-то может знать о проприетарном методе Apple WebKit для этого. Это будет что-то вроде: В качестве бонуса было бы также полезно знать логическое свойство, которое сообщает, открыт / активен ли элемент select в данный момент (т.е. е. не только то, есть ли у элемента фокус). Я знаю, что могу решить эту проблему, отслеживая события щелчка и изменения, но было бы полезно простое свойство. Принятие желаемого за действительное? ОБНОВЛЕНИЕ: ОБНОВЛЕНИЕ: focus ()
для элемента select и изменения его свойства size
, чтобы сделать видимыми больше элементов option
, либо создания полностью имитационной выберите элемент с помощью элементов
. Я, однако, хотел бы использовать собственные элементы управления выбора в браузере в iPad и iPhone.
var myselect = document.getElementsByTagName("select")[0];
myselect.open(); // this method doesn't exist
У меня еще нет ответа, но я нашел это имитирует mousedown
успешно открывает выбранный элемент в Google Chrome, но не в iPad или Firefox и так далее: function simulateMouseEvent(eventName, element) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent(eventName, true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
element.dispatchEvent(evt);
}
simulateMouseEvent("mousedown", select);
Я спросил родственное, но другое (и точно так же без ответа! ) вопрос о полях выбора здесь: Существует ли событие DOM, которое срабатывает при закрытии элемента выбора HTML?