Если IE, то включить файл [A] еще включить файл [B] - PullRequest
1 голос
/ 29 июня 2010

У меня есть страница, для которой я хочу загрузить разный контент для разных браузеров .

Пример:

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

Ответы [ 6 ]

10 голосов
/ 29 июня 2010

Не используйте PHP для этого. Вам гораздо безопаснее делать это на уровне браузера, предпочтительно используя условные комментарии .Вы не можете доверять HTTP_USER_AGENT , поскольку его очень легко подделать / изменить, поэтому вы не можете уверенно (и, следовательно, не должны) принимать решения на основе его значения.Придерживайтесь одного .tpl файла и включите конкретную таблицу стилей на основе условного комментария или добавьте дополнительную разметку, используя эти комментарии.Например, вы можете добавить дополнительную разметку, подобную этой, и затем нацелиться соответственно:

<html>
<body>
<!--[if IE 6]><div id="ie6"><![endif]-->
... main content here
<!--[if IE 6]></div><![endif]-->
</body>
</html>
4 голосов
/ 29 июня 2010

Взгляните на функцию get_browser() PHP.
http://php.net/manual/en/function.get-browser.php

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

2 голосов
/ 07 июля 2011
<!--[if IE]>
{include file="/content1.tpl"}       
<![endif]-->

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

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

2 голосов
/ 01 июля 2010

Эта работа:

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

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

Смотрите ЗДЕСЬ для более подробной информации.

2 голосов
/ 29 июня 2010

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

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

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

в HTML вы можете использовать этот синтаксис

0 голосов
/ 29 июня 2010

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

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