Pergunta

Eu estou tendo estranho problemas com o IE7 modo de Compatibilidade e HTML5.

Sintomas:Vai directamente para a minha página inicial, usando o PHP pode detectar que é IE7.Depois de bater um formulário botão de submeter e clicando em a volta do botão, ele não detecta como o IE7 mesmo, enquanto ainda em modo de compatibilidade.Deve ser de atualização ou recarregado para detectar como o IE7 novamente.

O que posso fazer para tornar isso mais robusto?Por favor, não diga usar get_browser e browscap.Eu não quiser manter manter em que browscap.ini.

no head do html:

<?php 
    /**
    *   IE 7 has trouble with jscrollpane, so disable for all IE except for 9 which works just fine.
    */ 
    $getBrowser = $_SERVER['HTTP_USER_AGENT']; 
    if( (!stristr($getBrowser,'MSIE')) || stristr($getBrowser,'MSIE 9')):
?>
<script src="jquery/jquery.mousewheel.js"></script>
<link  rel="stylesheet" href="styles/jquery.jscrollpane.css" />
<script src="jquery/jquery.jscrollpane.min.js"></script>
<script  src="jquery/js.js"></script>
<?php endif; ?>

Atualizado:

$getBrowser = $_SERVER['HTTP_USER_AGENT']; 
        if( stristr($getBrowser,'MSIE') === false)

Realocada js.js linha:

<!--[if IE 9 ]>
    <script  src="jquery/js.js"></script>
<![endif]-->

Faz a mesma coisa ao pressionar o botão voltar.

Editar:Homem....Eu acho que eu estou tendo sérios problemas de máquina.A caixa com o windows deve ter sido asneira após a atualização do windows.Desculpe-nos por essa coisa doida.Funciona bem em outro computador que não executou o windows update ainda.

Foi útil?

Solução

Eu não tenho IE9 então eu não posso experimentá-lo, mas você não pode fazer algo como isso e coloque-o na <head>:

<!--[if IE 9]>
     // your includes here
<![endif]-->

Não tenho certeza se é importante para você continuar a ver o script tags incluído em a origem, mas pelo menos ele não executá-los, a menos que a seleção estava satisfeito.

Outras dicas

Como o @tradyblix disse, você pode fazer isso do lado do cliente.Eles são chamados de comentários condicionais.

Se você tiver que fazê-lo no PHP, gostaria de usar strpos().

$ua = $_SERVER['HTTP_USER_AGENT'];
if (stripos($ua, 'MSIE') === false || stripos($ua, 'MSIE 9') !== false)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top