5

私は、私たちの製品の html 生成システムを作成した到達不能な開発者のパラメーター内で作業しています.新しいページが生成されるたびに、彼は次のように配置します:

<!-- updated page at 05/MAY/2010 02:58.58 -->
<!-- You must use the template manager to modify the formatting of this page. --> 

私のコードは次のようになります:

<!-- updated page at 05/MAY/2010 02:55.30 -->
<!-- You must use the template manager to modify the formatting of this page. -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

開発者の画面を見ると、Quirks モードでレンダリングされるため、IE がこの doctype を読み取るとはまったく信じていません... IE をこの恐ろしい Quirks モードから強制的に解除する方法はありますか 私は開発者に連絡を取ろうとしてきましたが、彼はかなり利用できません..

あなたが提供しなければならないかもしれないどんな助けにも前もって感謝します.

//編集:

オンロードコマンドで親ページをヒットするために、javascriptを介してこれを行うことは可能ですか?

4

5 に答える 5

2

追加することにより、IEに標準モードを使用させることができます

<meta http-equiv="X-UA-Compatible" content="IE=8" />

HTML の head セクションの先頭に追加するか、サーバー構成を介して同等の HTTP ヘッダーを追加できます。ただし、これは IE8 以降でのみ機能します。

于 2010-09-28T17:54:32.053 に答える
2

あなたにできることは何もありません。コンテンツ管理システムが機能していません。開発者を見つけて、この欠陥のあるシステムを修正してもらうか、新しいコンテンツ管理システムを入手する必要があります。

于 2010-05-05T03:34:02.487 に答える
0

ページはどのように生成されていますか?

PHP を使用している場合は、出力バッファリングを使用して、テンプレート コメントが出力されないようにすることができます。

于 2010-05-05T03:23:24.460 に答える
0

そのコードに行き詰まっている場合は、ビルド プロセスに最後のステップを追加して、これらのコメントを削除してみてはいかがでしょうか?

于 2010-05-05T09:54:42.923 に答える
0

はい、可能です、しかし、それは非常に悪いことです。

アップデート。申し訳ありませんが、うまくいきません。

しかし場合によっては、ユーザーに提供されるものを制御できないことがあります。典型的な状況: 会社が何らかの法的な理由で使用を義務付けられている支払いゲートウェイ。ページのスタイルを設定したり、独自のコンテンツをページに配置したりできますが、変更したり、doctype の設定方法を変更したりすることはできません (そして、まったく設定されていません!)。

したがって、このリンクに触発されました: http://www.webmasterworld.com/forum91/4856.htmと美化されたソリューションは、おそらく次のようなものになります (終了 body タグの前に置きます</body>):

<!--[if IE]>
<script>
!function() {
var doctype = "<!DOCTYPE html>",
    headHTML = document.head.outerHTML,
    bodyHTML = document.body.outerHTML;

window.doctypeSet = false;

if (window.doctypeSet) return;
setTimeout(function(){
  document.write(
    doctype + 
    "<html>" + 
    headHTML + 
    bodyHTML +
    "</html>"
  );
  window.doctypeSet = true;
}, 0);

}();
</script>
<![endif]-->

ただし、 IE10 以降がこの汚いダンスを実行しないように、 のよう<!--[if IE]>なものに変更することもできます。<!--[if lte IE 9]>doctype が存在しない場合、IE10 も quirksmode に切り替わるかどうかはわかりません。切り替わらない場合は、このコードをそこで呼び出す必要はありません。

于 2012-01-26T11:43:00.610 に答える