Я не надеюсь, но я спрошу на всякий случай.
Я хотел бы иметь возможность использовать JavaScript для открытия элемента select в мобильном Safari для iPhone/iPad.
Широкий поиск Google/Qaru показывает, что многие люди хотели бы сделать это в браузерах в целом, но он не поддерживается (почему бы и нет, интересно?). Были предложены различные взломы, вызвав focus()
в элементе select и изменив его свойство size
, чтобы сделать больше элементов option
видимыми или создать полностью издеваемый элемент select с элементами <div>
и <ul>
. Тем не менее, я хотел бы использовать собственный браузер для управления в iPad и iPhone.
Интересно, может быть, кто-то может знать о собственном методе Apple WebKit, чтобы это сделать. Это будет что-то вроде:
var myselect = document.getElementsByTagName("select")[0];
myselect.open(); // this method doesn't exist
В качестве бонуса было бы также полезно знать логическое свойство, которое говорит, является ли элемент выбора в настоящее время открытым/активным или нет (т.е. не только, имеет ли элемент фокус). Я знаю, что могу это исправить, отслеживая щелчок и изменяя события, но простое свойство было бы полезно.
Желаемое мышление?
UPDATE:
У меня пока нет ответа, но я обнаружил, что симуляция 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);
UPDATE:
Я задал связанный, но другой (и так же безответный!) Вопрос о выборе полей здесь: Есть ли событие DOM, которое срабатывает при закрытии элемента выбора HTML?