web-dev-qa-db-ja.com

イントラネットの「Internet Explorer 8」ブラウザーモードを強制する

IE8には、「Internet Explorer 8」、「Internet Explorer 8互換モード」、およびIE7モードがあります。

ただし、IEのデフォルト設定では、IE8モードに強制するようにdoctype、メタタグ、httpヘッダーを設定している場合でも、すべてのイントラネットWebサイトで「IE8互換モード」を使用します。

私は持っています

<!DOCTYPE HTML PUBLIC "-// W3C // DTD HTML 4.01 Transitional // EN" " http://www.w3.org/TR/html4/loose.dtd ">

そして

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

ただし、IE設定に変更を加えることなく、「IE8互換モード」に入ります。

ブラウザの設定を変更せずに、純粋な「IE8」モードにする方法は?

PS。ここでは「ドキュメントモード」とは言いません。

70
Dennis C

MSFTは、内部で実行されているさまざまなWebアプリケーションがある大規模なイントラネット環境を考慮していないようです。

MSDNフォーラムで読んだところによると、IE8の設定をバイパスする方法はありません。

そのため、システム管理者に、MSFTがこのバグを発見して修正するまで、「互換表示」の設定と値を変更し、ユーザーが値を変更できないように、いくつかの新しいグループポリシーを作成する必要があります。

MSDNブログ投稿 (emphasis theirs): "ブラウザモードはIEリクエストの前に選択されますウェブコンテンツ。これは、サイトがブラウザモードを選択できないことを意味します

44
Dennis C

イントラネットの互換モードをオーバーライドすることは可能です。以下のコードをweb.configに追加するだけです。 IE9で私のために働いた。

<system.webServer>
<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=Edge" />
  </customHeaders>
</httpProtocol>
35
Andras Csehi

IEを調整する必要があります。

どうぞ.....

インターネットオプション/ローカルイントラネット/サイト内

[サイト内のローカルイントラネット]で、[イントラネットネットワークを自動的に検出する]をオフにします。

次に、「すべてのネットワークパス(UNC)を含める」のみを選択します

添付のスクリーンショットを見る

Screenshot

11
Codex73

ここで答えを見つけるのは難しいと感じたので、ここに重要な情報を簡単に示します:

イントラネットがIEのデフォルト設定を使用している場合、Webサイトの設定に関係なく、IE7標準モードがイントラネットサイトに適用されます。

this から:

互換表示とエンタープライズ

現在、多数の基幹業務WebサイトがInternet Explorer 7に対応しています。互換性を維持するために、Internet Explorer 8にはゾーン評価に基づいたスマートなデフォルトが付属しています。デフォルト状態では、パブリックインターネット上のすべてのサイトはInternet Explorer 8標準モード(互換表示オフ)で表示され、すべてのイントラネットWebサイトはInternet Explorer 7標準モードで表示されます(互換表示オン)。

いくつかの例を見てみましょう。 http:// myPortal および http:// sharepoint/sites/mySiteインターネットのようなローカルイントラネット上のサイトに移動する場合Explorer 8は、ユーザーエージェント文字列「7」、バージョンベクター「7」で自身を識別し、Internet Explorer 7標準モードで標準モードをトリガーするWebページを表示します。この組み合わせにより、Internet Explorer 7で正常に機能したWebページをIE8で引き続き機能させることができます。

6
upshake

イントラネットまたはすべてのWebサイトの互換表示設定を上書きするには、IE8自体をエミュレートさせる必要があります。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
4
Craig A

<meta...セクションで<head>を使用する代わりに、カスタムHTTPヘッダーを設定します。これらは同等であると想定されていますが、サーバーからのX-UA-Compatible HTTPヘッダーがIE 8の[互換ビューでイントラネットサイトを表示]設定をオーバーライドし、<meta...要素はオーバーライドしません。

3
David Kolar

.NETを使用している場合は、答えがあります。

[〜#〜] html [〜#〜]

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" >

Web.Config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=8" />
      </customHeaders>
    </httpProtocol>

DOCTYPE宣言はvery first lineでなければならないことをどこかで読んでください。いかなる種類のコメントも空行もありません。

HTTP応答ヘッダーの設定と組み合わせて、これはうまくいきました。 Browser Modeは「IE9互換モード」から「IE9モード」に移行しました。

1
BrunoSalvino

「正しい」とマークされた答えは技術的には正しいですが、ほとんどの人が直面している実際の問題に対する解決策はないことを示唆しています。互換モード?"。

<!DOCTYPE HTML>
<HEAD>
    <meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>

これはいくつかのワークステーションで機能しました。

上記のコードがアプリケーション側に実装されている場合、IE8はブラウザーモードを互換モードとして表示しますが、互換モードではないかのように動作するようです。

0
Tia

ドメインサイト名siteからポート番号を削除する必要があります:118/index /

ブラウザのURLにポート番号が表示されている場合-こんにちは、「考えてください」、それはイントラネットです。

dNSサーバーをわかりやすいURLに設定します-site.com/indexで正常に動作します

0
ZOXEXIVO

META宣言が機能するためには、Doctypeが簡易バージョンである必要があります。

<!DOCTYPE html>

デニスの質問の長い文ではありません。

0
Deborah

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation IntranetCompatibilityMode 1-> 0

0
Yurok

このコンボは私のためにトリックをしました:

<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
</HEAD>

少なくともIE開発者ツールはIE9 Compat View、IE8標準を報告します

キックのためだけに、EmulateIE7を試してみましたが、うまくいきました。拡張!DOCTYPEを簡素化することが重要でした。

0
Ray Brockman