IE9を互換表示させる方法を教えてください。


現在、サイトを作っているのですが。
スライドショーのjsファイルがIE9で上手く動きません。
(他のIEやブラウザはすべて大丈夫でした)

メタに<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
を記入することで、IE9でも動くようになったものの
最終的にメタ部分を触る事ができない、ASPサービスへ組み込みをします。
このため、javascriptの方で制御できないか?と考えました。
IE9でサイトが表示されたときに、互換モードになるような設定はできないでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/10/12 01:23:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:maya70828 No.1

回答回数1364ベストアンサー獲得回数139

ポイント150pt

微妙なんですがこのリンクのHTTP レスポンス ヘッダーは使えないですか?
http://www.softel.co.jp/blogs/tech/archives/2706
http://www.atmarkit.co.jp/fdotnet/special/ie9review01/ie9review01_01.html

id:jyusi-hyouhon

ご回答ありがとうございます。
最終的にヘッダーごとカスタムできないwebサービスをどうにかしようとしていたので
レスポンスヘッダーの改変ができない状態だったのです。
jsだけではムリそうですね。。
リンクありがとうございました!

2012/10/11 10:19:37
id:maya70828

解決してないのにポイントだけ頂くのも気が引けるので調べたところこれは使えないですか?
http://stella-design.biz/2012/09/28/181707.html
http://webcre8.jp/collect/javascript-ie-correspondence.html
IE6 を IE7/8 互換にする Script と XML & DOCTYPE宣言
http://d.hatena.ne.jp/turipat/20090515/1242402401
なのでjavascriptでも不可能でない気がします。
参考にどうぞ。

2012/10/12 02:32:44

その他の回答2件)

id:maya70828 No.1

回答回数1364ベストアンサー獲得回数139ここでベストアンサー

ポイント150pt

微妙なんですがこのリンクのHTTP レスポンス ヘッダーは使えないですか?
http://www.softel.co.jp/blogs/tech/archives/2706
http://www.atmarkit.co.jp/fdotnet/special/ie9review01/ie9review01_01.html

id:jyusi-hyouhon

ご回答ありがとうございます。
最終的にヘッダーごとカスタムできないwebサービスをどうにかしようとしていたので
レスポンスヘッダーの改変ができない状態だったのです。
jsだけではムリそうですね。。
リンクありがとうございました!

2012/10/11 10:19:37
id:maya70828

解決してないのにポイントだけ頂くのも気が引けるので調べたところこれは使えないですか?
http://stella-design.biz/2012/09/28/181707.html
http://webcre8.jp/collect/javascript-ie-correspondence.html
IE6 を IE7/8 互換にする Script と XML & DOCTYPE宣言
http://d.hatena.ne.jp/turipat/20090515/1242402401
なのでjavascriptでも不可能でない気がします。
参考にどうぞ。

2012/10/12 02:32:44
id:a-kuma3 No.2

回答回数4974ベストアンサー獲得回数2154

ポイント150pt

レンタルカートのサービスって、iframe の中で動かしたりすることは可能ですか?

http://msdn.microsoft.com/en-us/library/gg558056%28v=VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ff955402%28v=vs.85%29.aspx
iframe を表示するときに、それのフレームを抱えている親のページが IE9 モードで描画されていないなら、フレームの中身は(meta タグなどで、モードに何が指定されていても)親のフレームと同じモードで描画される、とのこと。

こんなページを仮に作って、そこのフレームの中で動作させると、ページやレスポンスヘッダをいじらなくても、下位のモードで動作すると思います。

<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<style>
IFRAME {	/* body 目いっぱいに広げる */
	width: 100%;
	height: 100%;
	border: none;
}
</style>
</head>
<body>
<iframe src="カートのサービスの URL"></iframe>
</body>
id:jyusi-hyouhon

ありがとうございます!
もしかしたらスライドショーの部分だけをiframeにすることで解決するかも!と思ったのですが、「frame・iframe内でのご利用はできません。」とのことでした >
コードまで丁寧に書いていただたのに、、ありがとうございます。

2012/10/11 13:46:12
id:sanada33 No.3

回答回数293ベストアンサー獲得回数3

id:jyusi-hyouhon

ご回答ありがとうございます。
サイトを観覧する側ではなく、
サイト自体のソースを互換できるようにするという質問ですので
こちらはポイント対象外とさせていただきます。すみません。

2012/10/11 16:23:49
id:sanada33

ぜんぜんいいですよ
力になれなくてすみません

2012/10/12 21:00:15
id:jyusi-hyouhon

質問者から

JH2012/10/12 03:40:23

沢山アイデアをありがとうございました。

結合時にコードを触れない箇所が多く、レンダリングでカバーできそうにないことに気づきましたので一旦質問を終了させていただきます。

  • id:australiagc
    JSでは互換モードをチェックすることは出来ても、書き換えることは出来ないと思います。
    通常、この手の処理はクライアントではなくてサーバー側(ASP)で行うものだと思うのですが、何故それではダメなのでしょうか?

    e.g.
    Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv="X-UA-Compatible", Content="IE=EmulateIE7" });

    ASPがダメなら、web.configで設定してしまうのもやはりダメでしょうか・・・?

    i.e.
    <system.webServer>
    <httpProtocol>
    <customHeaders>
    <remove name="X-UA-Compatible" />
    <add name="X-UA-Compatible" value="IE=EmulateIE7" />
    </customHeaders>
    </httpProtocol>
    </system.webServer>
  • id:jyusi-hyouhon
    書き込みありがとうございます。
    やはりJSだけでは書き換えはできないのですね!

    ヘッダーに手を加えることができないレンタルカートのサービスを使っており
    本来であればMETAタグ、HTTPレスポンスヘッダー、DOCTYPE宣言で対応できるのですが、、
    これらに書き込みができないため、外部からjsを読みこむ方法で対処できないかと考えての質問でした。


    IE9でエラーを起こしている原因自体の方を直すことにします。
    ご回答ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません