私はそのページをXHTML + MathML + SVGとして提供するフォーラムを運営しています。略さずに:
<!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">
MathPlayerプラグインを使用すると、Internet Explorerユーザーはこのサイトを使用できます。ただし、誰かがIEのフォーラムを使用していて、MathPlayerをインストールできない場合があります(おそらく、どこかの公共のマシン上にあります)。次に、IE(少なくとも6と7)はXHTMLについて不平を言い、ファイルをダウンロードすることだけを提案します。
XSL変換を使用してこれを回避する方法をw3cサイトで読みました(http://www.w3.org/MarkUp/2004/xhtml-faq#ie)。これを配置したところ、Chromeが未定義のエンティティについて激しく不満を言っていることがわかりました(特定のものはそうでした
が、テストはそれが関連していないことを示しています)。
奇妙なことに、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 " ">
]>
しかし、私はエンティティの全範囲に対してこれを行うのではなく、XHTML + MathML + SVG dtdは、私の知る限りでは、これらのエンティティを宣言しているため、「奇妙に」と言います。したがって、どういうわけか、これらは見逃されています。
この問題を回避する方法はありますか?XHTML-with-entitiesをIEに提供できますか?
重要な場合、ページはphpスクリプトによって生成され、Apacheを介して提供されます。そのため、ブラウザーをスニッフィングしてドキュメントの先頭を変更する信頼できる方法がある場合(つまり、<?xml-stylesheet ...>
ビットをIEに送信するだけ)、それは許容可能な代替。
(適切なSEサイトがあることを願っています...間違った場所にいる場合はお知らせください。タグと同じです。)