问题标签 [browser-feature-detection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何在 :before 使用 javascript 的伪元素上检测 CSS 转换支持?
我正在尝试将CSS 转换与:before
选择器一起使用,目前唯一支持此功能的浏览器是 Firefox。我可以毫无问题地创建一个jQuery 后备,但我不确定如何使用这样的伪元素进行特征检测。
这是一个 JSBin,它显示了我正在使用的 HTML 和 CSS。
(......这是一个类似的SO问题,但关于使用常规元素。)
更新:哇,连IE10的平台预览版都支持这个了,那个webkit是怎么回事?!
(编辑:解决方案移至下面的答案)
javascript - 通过 HTML 文件输入拖放文件的功能检测
我们可以检测浏览器是否支持将文件拖放到<input type="file" />
.
例如,这在 Chrome 中是可能的,但在 IE8 中是不可能的。
Modernizr.draganddrop
是一种可能性,但这是正确的选择吗?我没有添加任何自定义拖放事件处理程序。
更新
为了验证乔的回答,这里有一个 jQuery 示例,它应该停止文件删除。在 Chrome 和 Firefox 中验证。
javascript - 如何测试浏览器对事件的支持
具体来说,测试是否input[type=date]
会触发input
事件?
javascript - 如何检测移动浏览器是否会显示“本机”下拉控件?
我想检查浏览器是否会显示特殊的“本机”样式下拉列表(例如 iPhone 和 iPod),而无需专门检查浏览器名称。是否可以在不按名称查看用户代理的情况下以更通用的方式检查该功能?
我想这样做以确定是否呈现标准或更增强的下拉控件。
html - 在 Firefox 中检测 getUserMedia
我正在编写一个使用 getUserMedia 访问用户的网络摄像头并让他拍摄快照的网络应用程序。
这会优雅地降级以让他们手动上传文件,这在这种用例中更烦人,但至少他们可以将应用程序与其他浏览器一起使用。
我正在做的是:
- 如果浏览器不支持 getUserMedia,我会显示一个标志,上面写着“嘿,去换个更好的浏览器”
- 如果是,我显示“单击允许”,调用 getUserMedia
- 如果 getUserMedia 调用“失败”回调,我会显示“哎呀,这不起作用。您是否单击了允许?”
现在,Firefox确实支持 getUserMedia,但您需要在“about:config”中手动打开一个魔术标志。但是,如果该标志关闭(这是默认设置),则 getUserMedia 存在,因此看起来浏览器确实支持它,但调用它不会做任何事情(甚至不调用我的失败函数)
这是所有可能性中最糟糕的一种,因为我无法告诉用户任何真正有趣的事情。
有什么好方法可以干净地处理这个问题吗?如果标志关闭,任何让我知道 Firefox不支持相机的东西,基本上,没有我添加“如果 Firefox,假设它不受支持,直到我们中的一个人有一天意识到标志现在默认开启”。
html5-audio - soundmanager2:如何判断音量属性是否可变
我正在使用 soundmanager2 库 ( http://www.schillmania.com/projects/soundmanager2 ) 来提供跨浏览器音频支持,效果很好。
但是 IOS 设备不允许设置 HTML5 音量属性。所以我想检测是否可以使用这个功能来改变我的网站的外观(例如隐藏音量控制)。
javascript - jQuery 1.9 浏览器检测
在早期版本中,我曾经测试是否应该popstate
在页面加载时手动触发,因为 Chrome 会在加载后立即触发,而 Firefox 和 IE 则不会。
现在他们在 1.9 中删除了浏览器对象,我应该如何测试这些浏览器?或者我如何确定是否需要popstate
加载页面?
代码是:
更新
为此:
javascript - 在 yepnope.js 中测试媒体查询 - 误报还是...?
我正在使用此代码来测试媒体查询支持,因为我想为例如 IE8 加载 polyfill。
它可以工作(=respond.js 在 oder IE 中加载),但现在我刚刚发现 response.js 也在 Safari 中加载。
阅读完文档后,我相信 response.js 已加载,因为 Safari不支持某些媒体查询。这是真的?我该如何解决这个问题?
internet-explorer - Ace 和 IE:可编辑内容在第 2 行代码处被截断
编辑已解决:最初我的印象是,由于可编辑代码在第二行被切断,Ace 将完全无法使用。所以我想'我们甚至不要在 IE 中加载它'。我们的错误已修复,Ace 在 9 中工作得很好(或足够接近,但不如 FF 或 Chrome 中的好)。
原始问题:我发现自己不得不阻止 Ace 编辑器在 IE 中加载,并且想知道需要检测哪些特定的浏览器功能?试图避免浏览器嗅探。