许多浏览器在元素正下方的简单框中显示选择元素的选项,如下所示:
但是,例如,在 iOS 上的 Safari 上,选项显示在一个大型的原生微调器中,如下所示:
有没有一种方法可以检测浏览器是否会为选择元素使用原生 UI 而不是“标准”UI?我想有条件地向使用以下浏览器的用户显示一个选择框这是可用的,我宁愿不必求助于用户代理嗅探。
示例来源:Gonçalo Morais
Best Answer-推荐答案 strong>
我认为没有像您要求的那样专门设计为“功能”。我相当确定您将需要诉诸用户代理检测,因为这正是 iOS 上的 Safari 选择 render 元素的方式 - 对我来说,添加 Safari 团队没有任何意义SELECT 元素的属性——或 DOM 上的任何其他地方——来表明这一点。您询问的那个“功能”本质上是用户代理字符串。
您可能知道这一点,但为了完整起见,我在这里提到它。有很多方法可以实现这一点 - 例如,您可以使用 Modernizr - 向其添加自定义测试以进一步根据您的需要对其进行自定义 - 请参阅 this举个例子。或者使用您自己的 JavaScript。或者使用 JavaScript 为 body 或 html 元素添加一个特定的类,指示它是什么浏览器,这样您就可以级联和自定义您的元素(基本上是 Modernizr 所做的)。
我知道这可能不是您希望的答案,但我很确定它在很大程度上是准确的。我很想听听不同的意见。
关于javascript - 可以检测到选择元素的 native UI 覆盖吗?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/33239186/
|