如何显示浏览器特定的HTML?

我试图找到一种方法来显示一个链接到一个IE用户和另一个链接到所有其他浏览器使用JavaScript或条件注释(或任何它需要)。

基本上...

//pseudo code
<!--[if IE]>
    <a href"ie-only.html">click here!</a>
<!--[else]>
    <a href"all-other-browsers.html">click here!</a>
<![endif]-->

我不认为这是可能的条件评论标签(只适用于Internet Explorer)。 另外我不认为有一个“其他”的声明。

有没有办法做到这一点与JavaScript? 请帮忙! 谢谢!


我不认为这是可能的条件评论标签(只适用于Internet Explorer)

就是这样。 您只需将非IE浏览器的内容保留在条件注释子句中,但不包含在<! - comment - >中。 然后,不知道条件注释的浏览器会看到内容正常。 这就是所谓的低级发现条件评论。

不幸的是,微软给你的标记是无效的HTML(甚至没有格式良好的XML)。 为了让它通过召唤,你只需要一些额外的' - ':

<!--[if IE]> This is IE! <![endif]-->
<!--[if !IE]><!--> This ain't IE! <!--<![endif]-->

虽然我必须回应AnonJr的非答案,但与其他浏览器相比,您应该需要一个完全独立的IE链接/页面。 如果你在IE中使用复杂的VML和ActiveX工作,在其他浏览器上使用Flash,我想这可能是有原因的,但通常在同一个基本页面上的少数CSS和脚本攻击就足够了。


这不会成为广受欢迎的答案,但是有人开始发布它 - 该死的时间停在浏览器特定的垃圾上。 新版本发布时,你只会使未来的问题长期存在。

如果开发人员花了额外的时间(是的,这需要时间和努力工作,如果你不能说服你的客户,你没有足够努力),那么我们不会看到IE7“打破网络”,并会有对IE8来说更是如此。

是的,IE比其他标准更符合标准。 但是,Fx也缺少某些标准的一部分。 当涉及到“标准”时,他们都会吮吸。 但他们都在好转。 (以不同的价格,但它们都在变好。)

首先想想为什么你要这样做,并问问自己,当下一个浏览器版本出来时,你是否真的想要处理这个问题,你必须重新检查你的浏览器检测以及你如何处理浏览器Y的版本X.

[/咆哮]

编辑:要回答一些评论,指出了一个显而易见的事实,即我没有真正回答这个问题,没有更多的信息,这个问题让我怀疑我们是不是试图帮助一个人决定用指甲锤玻璃瓶或鞋子...


这是微软批准的方式:

<!--[if IE]>
    <a href="ie-only.html">click here!</a>
<![endif]-->
<![if !IE]>
    <a href="all-other-browsers.html">click here!</a>
<![endif]>

有关更多信息,请访问http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx。

编辑

该代码隐含地保证可以在IE 5以IE 5开始的所有当前版本和未来版本中工作。对于非IE浏览器,代码依靠忽略“无意义” <![if !IE]>标签的<![if !IE]>他们都这样做,我从来没有见过它失败。 对于只使用良好的HTML评论的版本,请参阅bobince的回答,我真正喜欢使用Microsoft提供的解决方案。

链接地址: http://www.djcxy.com/p/29465.html

上一篇: How to display browser specific HTML?

下一篇: Set position of a <div> from data saved in localStorage