如果IE然后包含文件[A]否则包含文件[B]

时间:2010-06-29 15:04:47

标签: php javascript smarty

我有一个页面,我想为不同的浏览器加载不同的内容

示例:

IF Internet explorer

{include file="/content1.tpl"}

ELSE if any other browser

   {include file="/content2.tpl"}

{/if}

Content1.tpl & 内容2.tpl 是两个不同的文件,其中包含受尊重的 Html& CSS。

如何使用Javascript或php实现此目的?

谢谢,

  • Mandar

修改

我想要的是, IE 完全忽略content2.tpl

&安培; Mozilla 或其他完全忽略content1.tpl

6 个答案:

答案 0 :(得分:10)

不要使用PHP。在浏览器级别这样做更安全,最好使用conditional comments。您cannot trust the HTTP_USER_AGENT因为伪造/变更非常容易,所以您不能自信(因此不应该)根据其价值做出决定。坚持使用一个.tpl文件,并根据条件注释包含特定样式表,或使用这些注释添加其他标记。例如,您可以添加这样的附加标记,然后相应地进行定位:

<html>
<body>
<!--[if IE 6]><div id="ie6"><![endif]-->
... main content here
<!--[if IE 6]></div><![endif]-->
</body>
</html>

答案 1 :(得分:4)

查看get_browser() PHP函数 http://php.net/manual/en/function.get-browser.php

请注意,USER AGENTS可以伪造,因此您不能依赖此100%。

答案 2 :(得分:2)

在PHP中,您可以查看名为$ _SERVER的超全局。在HTTP_USER_AGENT键下,您将找到浏览器。

这将使用PHP和Smarty计算服务器端。

在Javascript中,使用this

HTML中的

可以使用this syntax

答案 3 :(得分:2)

这项工作:

<!--[if IE]>
{include file="/content1.tpl"}       
<![endif]-->

<![if !IE]>
{include file="/content2.tpl"}   
<![endif]>

查看HERE了解更多详情。

答案 4 :(得分:2)

<!--[if IE]>
{include file="/content1.tpl"}       
<![endif]-->

<comment>
{include file="/content2.tpl"}   
</comment>

Internet Explorer忽略<comment></comment>标记,就好像它们是标准注释一样,但所有其他浏览器都像普通代码一样读取它们。这非常适合隐藏非IE代码。

答案 5 :(得分:0)

这应该有效:

<script type = " javascript" >
if (navigator.appName == "Microsoft Internet Explorer")
{
    /*
      do something
    */
}
else
{
    /*
      do something else
    */
}
</script>