我没有希望,但我会问,以防万一.
我希望能够使用JavaScript在iPhone / iPad的移动Safari中打开一个select元素.
广泛的Google / Stack Overflow搜索显示,很多人都希望能够在浏览器中实现这一点,但不支持(为什么不,我想知道?)已经提出了各种各样的黑客,从select元素调用focus(),并改变其size属性以使更多的选项元素可见,或使用÷构造一个完全模拟选择元素.和< ul>元素.但是,我想使用iPad和iPhone中的本地浏览器选择控件.
我想知道,也许有人可能会知道一个专有的Apple WebKit方法来做到这一点.它会是这样的:
var myselect = document.getElementsByTagName("select")[0]; myselect.open(); // this method doesn't exist
作为一个奖励,知道一个布尔属性说明select元素当前是否打开/是否有效(也就是说,不仅该元素是否具有焦点)也是一件好事.我知道我可以通过跟踪点击和更改事件来解决这个问题,但一个简单的属性将是有用的.
妄想?
更新:
我还没有答案,但是我发现模拟mousedown成功地在Google Chrome中打开了一个select元素,而不是iPad或Firefox等等.
function simulateMouseEvent(eventName,element) { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent(eventName,true,window,false,null); element.dispatchEvent(evt); } simulateMouseEvent("mousedown",select);
更新:
我在这里选择了一个相关但不同的(和类似的未回答的)问题:Is there a DOM event that fires when an HTML select element is closed?