互換性ビューを削除できないようですか?

Flot プロットライブラリを使用しています。 IE8とIE9では正常に動作しているようですが、IE9互換性ビューで問題が発生します。これはグラフをレンダリングしません。私はこれがHTML5の canvas オブジェクトを使っていることが原因だと思っていますが、私は間違っている可能性があります。私は次のことを試みました:

  • Add: <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> to my HTML <head></head> tag. I even tried IE=8 and IE=9 and that did not help either. My tag look like this:

    
    
    
    <meta http-equiv="X-UA-Compatible" content="IE=8" /> ... </head> <body> ... </body> </html> 
  • Because I was still seeing the problem, I added the following to my Global.asax.cs file:

    void Application_End(object sender, EventArgs e)
    {
       // Code that runs on application shutdown
        Response.Headers.Add("X-UA-Compatible", "IE=Edge");
    }
    

私はまだ問題に直面しています。私が得るエラーはこれです:

HTML1202: http://intranetdomain/SampleProj/Default.aspx is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
Default.aspx
HTML1113: Document mode restart from IE7 Standards to IE9 Standards 
Default.aspx

これを乗り越えるのにとにかくありますか?

EDIT: Checking my response headers, adding that line in Global.asax.cs did not add them to my headers. I wonder why.

応答ヘッダー:

Key Value
Response    HTTP/1.1 200 OK
Cache-Control   private
Content-Type    text/html; charset=utf-8
Server  Microsoft-IIS/7.5
X-AspNet-Version    4.0.30319
X-Powered-By    ASP.NET
Date    Thu, 27 Oct 2011 20:39:55 GMT
Content-Length  29088

編集2:明らかに、 Application_End は間違ったイベントでした。代わりに、これを実行すると、要素がヘッダに挿入されます。

void Application_BeginRequest(object sender, EventArgs e)
{
    Response.Headers.Add("X-UA-Compatible", "IE=Edge");
}

しかし、問題自体は依然として持続しています。

16
@スレイバー忍者:はい。私は最初のタグとして持っています。また、使用している正確なマークアップで質問を更新しました。
追加された 著者 Legend,
@SliverNinja: Application_BeginRequest に追加すると、要素がヘッダに挿入されましたが、問題は引き続き発生します。
追加された 著者 Legend,
@クリス:あなたは正しかった。これを Application_BeginRequest に追加すると、クライアント側でヘッダーを見ることができませんが、問題は解決しません。
追加された 著者 Legend,
@Chris: Application_Start メソッドでは、 Response オブジェクトをまだ使用できないためです。
追加された 著者 Legend,
Application_Endは正しいイベントではありません。 PreSendRequestHeaders を試してください( msdn.microsoft。 com/ja-us/library /&hellip;
追加された 著者 SliverNinja - MSFT,
ここで人気のフィードバックに応じて動作する必要があります(
追加された 著者 SliverNinja - MSFT,
<head> の後に最初のタグとして追加しようとしましたか? IEは、メタタグのリスト内で最初に発生した場合にのみこれに応答するようです。
追加された 著者 SliverNinja - MSFT,
@Legend:ええ、私はApplication_BeginRequestを意味しました。 Application_Endは、アプリケーションが終了したときに起動します。アプリケーションの実行中に発生したRequestに対しては何も行いません。
追加された 著者 Chris,
Application_Endメソッドでレスポンスヘッダーを追加する理由はありますか?その代わりにApplication_BeginRequestメソッド内にあるべきではありませんか?
追加された 著者 Chris,

4 答え

この問題は、Internet Explorerの互換性ビューの設定に原因がある可能性があります。 「ツール」メニューから「互換性ビューの設定」を選択した場合は、「互換性ビューでイントラネットサイトを表示する」がチェックされていないことを確認してください。 IEがあなたのイントラネットにあると検出されたあなたのホスト名に基づいて、あなたに互換性のビューを強制的に見せているかもしれません。

- あなたのIEのバージョンに応じて、 "ツール"メニューを開くことができるメニューバーを表示するには、左の Alt キーを押す必要があります。

28
追加された
はい。それは確かに事実です。私は自分自身でこれを変更することができますが、私はこの設定を無効にしようとしています(それはあまり意味がありません)。 if($ .browser.msie && parseInt($。browser.version)!= 9){alert( "Not IE9!"} のように、このモードを検出することさえできません。 IE9が互換性モードにあるという事実を捕まえないでください。
追加された 著者 Legend,
私はあなたがその互換性設定を上書きできるとは思わない。 stackoverflow.com/questions/3726357/…
追加された 著者 Jacob,
teelahti.fi/blog/… これは、内部サーバーの互換性の問題を解決する非常に役立つヒントです。私はその前にすべてのソリューションを試しました。
追加された 著者 GeorgiG,
あなたがローカルで走っているなら、あなたがあなたのホストファイルを通して「生きている」URLをスプーフィングしていることを確かめ、サイトがインターネットサイトだと思うでしょう。
追加された 著者 sidonaldson,
これはまさに/ localhost /で働くWeb開発者が、IE7エミュレーションでの作業をデフォルトで表示するためです。ブラボー、マイクロソフト食べ物をつかむ。
追加された 著者 Imperative,

互換性の設定は、IISで直接設定できます。サイトをクリックして応答ヘッダを開くと、X = Uの値を持つX-UA-Compatibleを追加できます。ここで、Xはターゲットバージョンです。これはサーバーレベルでも設定できます。ただし、同じボックスに複数のサイトがある場合は、それらのサイトで問題が発生する可能性があります。あなたはサーバーレベルで適用してから、継承した設定をサイトレベルから削除することができます。

3
追加された
これは私のために働いた。私はJQuery 2でサイトを開発するためにIIS Expressをローカルで使用しています。IE 10がローカルサイトのデフォルトになっているように見えるIE 7モードとは互換性がありません。設定ファイル%UserProfile%¥My Documents¥IISExpress¥config¥applicationhost.configとを開きます。 msdn.microsoft.com/en-us/を参照してください。ライブラリ/ jj676913(v = vs.85).aspx
追加された 著者 Cameron Taggart,
これは、サイトがイントラネットサイトであると考えるIEをオーバーライドすることはできません!
追加された 著者 sidonaldson,

2年後、IEの2つの新しいエディション、そしてこのIE8の問題はまだ問題を引き起こしている!

私たちのASP.Netアプリケーションのために、web.configの "X-UA-Compatible"をWebページやコードの背後に追加しても差はありませんでした。

私たちのために働いたのは、「互換性ビューでイントラネットセットを表示する」チェックボックスを手動で解除することだけでした。

Turn off Display intranet sets in Compatibility View

2
追加された
私はすべてのユーザーがこのチェックボックスをオフにしないようにしたい:(
追加された 著者 Dot_NET Pro,

変わったことは、 runat = "server" を削除すると meta タグが機能し、ボタンが消えることです。 Bもちろん、 runat を削除することはお勧めしません。

0
追加された