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

我正在尝试找到一种方法,使用 javascript 或条件注释(或任何其他方式)显示一个指向 IE 用户的链接和指向所有其他浏览器的另一个链接.

I'm trying to find a way to display one link to an IE user and another link to all other browsers using javascript or conditional comments (or whatever it takes).

基本上...

//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).另外,我认为没有其他"声明.

I don't think this is possible with conditional comment tags (which only work in internet explorer). Plus I don't think there is an "else" statement.

有没有办法用 javascript 做到这一点?请帮忙!谢谢!

Is there a way to do this with javascript? Please help! Thanks!

推荐答案

我认为条件注释标签无法做到这一点(仅适用于 Internet Explorer)

I don't think this is possible with conditional comment tags (which only work in internet explorer)

确实如此.您只需将非 IE 浏览器的内容保留在某个位置,使其成为条件注释子句的一部分,但实际上不在 <!-- 注释 --> 内.然后不知道条件注释的浏览器会很好地看到内容.这被称为 downlevel-revealed条件注释.

Sure it is. You just have to leave the content for non-IE browsers in a position such that it's part of a conditional comment clause but not actually inside a <!-- comment -->. Then browsers that don't know about conditional comments will see the content fine. This is known as a downlevel-revealed conditional comment.

不幸的是,Microsoft 给您的标记是无效的 HTML(甚至不是格式良好的 XML).要使其通过集合,您只需要一些额外的--":

Unfortunately the markup Microsoft give you there is invalid HTML (and not even well-formed XML). To make it pass muster you just need a few additional ‘--’s:

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

虽然我不得不回应 AnonJr 的不回答,但与其他浏览器相比,您很少需要一个完全独立的 IE 链接/页面.如果你正在做一些棘手的事情,比如复杂的 VML 和 ActiveX 在 IE 中使用 Flash 在其他浏览器上工作,我想这可能是有原因的,但通常在同一个基本页面上进行一些 CSS 和脚本 hack 就足够了.

Although I have to echo AnonJr's non-answer, in that it's rare you should need a completely separate link/page for IE compared to other browsers. If you're doing something tricky like complex VML and ActiveX work in IE with Flash on other browsers I guess there could be a reason for it, but usually a few CSS and script hacks over the same basic page should suffice.

相关文章