OGeek|极客世界-中国程序员成长平台

标题: javascript - 可以检测到选择元素的 native UI 覆盖吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:33
标题: javascript - 可以检测到选择元素的 native UI 覆盖吗?

许多浏览器在元素正下方的简单框中显示选择元素的选项,如下所示:

select regular

但是,例如,在 iOS 上的 Safari 上,选项显示在一个大型的原生微调器中,如下所示: select iOS

有没有一种方法可以检测浏览器是否会为选择元素使用原生 UI 而不是“标准”UI?我想有条件地向使用以下浏览器的用户显示一个选择框这是可用的,我宁愿不必求助于用户代理嗅探。

示例来源:Gonçalo Morais



Best Answer-推荐答案


我认为没有像您要求的那样专门设计为“功能”。我相当确定您将需要诉诸用户代理检测,因为这正是 iOS 上的 Safari 选择 render 元素的方式 - 对我来说,添加 Safari 团队没有任何意义SELECT 元素的属性——或 DOM 上的任何其他地方——来表明这一点。您询问的那个“功能”本质上是用户代理字符串。

您可能知道这一点,但为了完整起见,我在这里提到它。有很多方法可以实现这一点 - 例如,您可以使用 Modernizr - 向其添加自定义测试以进一步根据您的需要对其进行自定义 - 请参阅 this举个例子。或者使用您自己的 JavaScript。或者使用 JavaScript 为 body 或 html 元素添加一个特定的类,指示它是什么浏览器,这样您就可以级联和自定义您的元素(基本上是 Modernizr 所做的)。

我知道这可能不是您希望的答案,但我很确定它在很大程度上是准确的。我很想听听不同的意见。

关于javascript - 可以检测到选择元素的 native UI 覆盖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239186/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4