相关疑难解决方法(0)

如何检测Safari,Chrome,IE,Firefox和Opera浏览器?

我有FF,Chrome,IE,Opera和Safari的5个插件/扩展.

如何识别用户浏览器并重定向(单击安装按钮后)以下载相应的插件?

javascript browser-detection

738
推荐指数
17
解决办法
78万
查看次数

仅使用CSS定位Firefox

使用条件注释很容易使用特定于浏览器的CSS规则来定位Internet Explorer:

<!--[if IE 6]>
...include IE6-specific stylesheet here...
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

有时,Gecko引擎(Firefox)行为不端.使用CSS规则而不是单个其他浏览器仅针对Firefox的最佳方法是什么?也就是说,Internet Explorer不仅应该忽略Firefox规则,还应该忽略WebKit和Opera.

注意:我正在寻找一个"干净"的解决方案.在我看来,使用JavaScript浏览器嗅探器向我的HTML添加"firefox"类并不符合要求.我宁愿看到一些取决于浏览器功能的东西,就像条件评论只对IE有"特殊"...

css firefox css-hack

595
推荐指数
8
解决办法
55万
查看次数

浏览器检测与特征检测

我将在一段时间内扮演一个魔鬼的拥护者.我一直在想为什么浏览器检测(与特征检测相反)被认为是一种不好的做法.如果我测试某个版本的某个浏览器并确认,某个功能的行为是以某种可预测的方式进行的,那么决定做特殊情况似乎没问题.原因在于它将来会万无一失,因为这部分浏览器版本不会改变.另一方面,如果我检测到DOM元素具有函数X,则不一定意味着:

  1. 此功能在所有浏览器中的工作方式相同,并且
  2. 更重要的是,即使在未来的所有浏览器中,它也会以相同的方式工作.

我只是偷看了jQuery源代码,他们通过在DOM中插入一个精心构建的HTML片段然后检查它的特定功能来进行特征检测.这是一种明智而坚实的方式,但我会说,如果我在我的小小的个人JavaScript(没有jQuery)中做了类似的事情,那将会有点太沉重.它们还具有几乎无限的QA资源的优势.另一方面,你经常看到人们做的是他们检查函数X的存在,然后基于此,他们假设函数将在具有此函数的所有浏览器中以某种方式运行.

我没有说任何意义上的功能检测不是一件好事(如果使用得当),但我想知道为什么浏览器检测通常会立即被解雇,即使它听起来合乎逻辑.我想知道这是否是另一个时髦的事情.

html javascript dom cross-browser

43
推荐指数
3
解决办法
3万
查看次数

仅使用CSS检查"@supports"支持的最实用方法是什么?

继昨天Eric Bidelman的谷歌I/O 演示之后@supports,我想到我会开始在Chrome Canary中玩它.然而,它提出了一个显而易见的问题:

检查浏览器是否支持@supports仅使用CSS 的最佳方法是什么?


我现在只是通过检查是否display: block支持它来玩弄它.显然,这种方法很有效,但我不确定这是否是最实用的方法:

body { background:#fff; font-family:Arial; }
body:after { content:'Ek! Your browser does not support @supports'; }

@supports (display:block) {
    body { background:#5ae; }
    body:after { color:#fff; content:'Your browser supports @supports, yay!'; }
}
Run Code Online (Sandbox Code Playgroud)

这是一个JSFiddle演示中的这个实际操作.

这些尝试都无法正常工作(在Chrome金丝雀,至少):

@supports (@supports) { ... }
@supports () { ... }
@supports { ... }
Run Code Online (Sandbox Code Playgroud)

css css3

5
推荐指数
1
解决办法
584
查看次数