2010-06-29 2 views
1

У меня есть страница, для которой я хочу загрузить различный контент для разных браузеров.Если IE затем включает файл [A] else include file [B]

Пример:

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

EDIT

То, что я хочу, IE полностью пренебрежение content2.tpl

& Mozilla или другой полностью пренебрежение content1.tpl

+5

** Не полагайтесь на строку агента пользователя ** !!! Очень плохой подход. – galambalazs

ответ

2

Эта работа:

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

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

Look HERE для получения более подробной информации.

2

в PHP вы можете посмотреть на суперглобальной с именем $ _SERVER. Там под ключом HTTP_USER_AGENT вы найдете браузер.

Это будет вычислено на стороне сервера, используя PHP и Smarty.

В Javascript, используйте this

в HTML можно использовать this syntax

4

Посмотрите на функцию get_browser() PHP.
http://php.net/manual/en/function.get-browser.php

Обратите внимание, что ПОЛЬЗОВАТЕЛЬСКИЕ АГЕНТЫ могут быть подделаны, поэтому вы не можете полагаться на этот 100%.

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> 
+0

Я хочу, чтобы IE полностью игнорировал content2.tpl и Mozilla или другие, чтобы полностью игнорировать content1.tpl – MANnDAaR

+0

@manndaar - надежного способа сделать это не существует – robjmills

0

Это должно работать:

<script type = " javascript" > 
if (navigator.appName == "Microsoft Internet Explorer") 
{ 
    /* 
     do something 
    */ 
} 
else 
{ 
    /* 
     do something else 
    */ 
} 
</script> 
2
<!--[if IE]> 
{include file="/content1.tpl"}  
<![endif]--> 

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

Internet Explorer игнорирует <comment></comment> тегов, как если бы они были стандартные комментариями, но все остальные браузеры распознают их как обычный код. Это отлично подходит для скрытия кода, отличного от IE.