Eu corro um fórum que serve suas páginas como XHTML + MathML + SVG; na íntegra:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd">
Usando o plug-in MathPlayer, os usuários do Internet Explorer podem usar este site. No entanto, às vezes alguém está usando o fórum do IE e não pode instalar o MathPlayer (talvez esteja em uma máquina pública em algum lugar). Então o IE (pelo menos 6 e 7) reclama do XHTML e oferece apenas o download do arquivo.
Li no site w3c como contornar isso usando uma transformação XSL ( http://www.w3.org/MarkUp/2004/xhtml-faq#ie ). Quando coloquei isso em prática, descobri que o Chrome agora estava reclamando intensamente de entidades indefinidas (a específica era,
mas os testes mostram que isso não é relevante).
Estranhamente, posso contornar isso declarando manualmente as entidades no DOCTYPE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" [
<!ENTITY nbsp " ">
]>
mas prefiro não fazer isso para toda a gama de entidades possível. Digo "bizarramente" porque o dtd XHTML + MathML + SVG, até onde posso ver, declara essas entidades. Então, de alguma forma, essas coisas estão sendo perdidas.
Existe uma maneira de contornar este problema? Posso servir XHTML com entidades para o IE?
Caso isso importe, as páginas são geradas por um script php e são veiculadas via apache; portanto, se houver um método confiável de farejar o navegador e modificar o início do documento (apenas enviar o <?xml-stylesheet ...>
bit para o IE), isso seria um alternativa aceitável.
(Espero ter o site SE correto ... por favor, deixe-me saber se estou no lugar errado. Idem com as tags.)
fonte
Respostas:
Esta instrução PHP corresponderá a qualquer navegador que inclua "MSIE" na cadeia do agente do usuário e você poderá refinar os critérios adicionando um número de versão, se desejar:
... com números de versão:
fonte