Ich betreibe ein Forum, dessen Seiten als XHTML + MathML + SVG dienen. vollständig:
<!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">
Mit dem MathPlayer-Plugin können Internet Explorer-Benutzer diese Site verwenden. Manchmal verwendet jedoch jemand das Forum vom IE und kann MathPlayer nicht installieren (möglicherweise befindet er sich irgendwo auf einem öffentlichen Computer). Dann beschwert sich IE (mindestens 6 & 7) über das XHTML und bietet nur an, die Datei herunterzuladen.
Ich habe auf der w3c-Website gelesen, wie man dies mithilfe einer XSL-Transformation umgeht ( http://www.w3.org/MarkUp/2004/xhtml-faq#ie ). Als ich dies einführte, stellte ich fest, dass Chrome sich jetzt lautstark über undefinierte Entitäten beschwerte (die spezifische war,
aber Tests zeigten, dass dies nicht relevant ist).
Seltsamerweise kann ich dies umgehen, indem ich die Entitäten im DOCTYPE manuell deklariere:
<!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 " ">
]>
aber ich würde dies lieber nicht für die gesamte Bandbreite der möglichen Entitäten tun. Ich sage "bizarr", weil die XHTML + MathML + SVG dtd, soweit ich sehen kann, diese Entitäten deklariert. Irgendwie werden diese also verpasst.
Gibt es einen Weg, um dieses Problem zu umgehen? Kann ich XHTML-with-Entities für den IE bereitstellen?
Falls es darauf ankommt, werden die Seiten von einem PHP-Skript generiert und über Apache bereitgestellt. Wenn es also eine zuverlässige Methode gibt, den Browser zu beschnüffeln und den Anfang des Dokuments <?xml-stylesheet ...>
zu ändern (also nur das Bit an den IE zu senden ), wäre dies eine akzeptable Alternative.
(Ich hoffe, ich habe die richtige SE-Site ... bitte lassen Sie mich wissen, wenn ich am falschen Ort bin. Das Gleiche gilt für die Tags.)
quelle
Antworten:
Diese PHP-Anweisung stimmt mit allen Browsern überein, die "MSIE" in der Benutzeragentenzeichenfolge enthalten. Falls gewünscht, können Sie die Kriterien durch Hinzufügen einer Versionsnummer verfeinern:
... mit Versionsnummern:
quelle