- ベストアンサー
IEとIE以外のブラウザで表示内容を変えたい
- IEとIE以外のブラウザで表示内容を変える方法について教えてください
- XHTMLファイルでは、IEとIE以外のブラウザで正しく表示されないため、リンク先のファイルを変えたいです
- どうすればブラウザごとに異なるHTMLファイルを開けるようになるのでしょうか
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
1さんのスクリプトはbodyの中です。丸々コピーすればそのまま使えるはずです。 ちょっと無理やり互換モードを達成する方法を見つけました。暫定的処置ですが、IEは互換モード、それ以外は標準準拠モードになります。 まず、xml宣言有りのxhtmlを用意します。 これをhead内に追加。 <meta http-equiv="X-UA-Compatible" content="IE=5"/> xml宣言の中央にある区切りは通常半角スペースですが、これをtabの空白に置き換えます。 <?xml version="1.0" encoding="UTF-8"?> ↑ここです。(回答ではただの半角になってしまうので、コピーではなく直に編集してください) ネット上にはいろいろCSSのバグ関連の記事が転がっていると思うので、それを調べておくと作るときに悩むことが少なくなりますよ。 http://adp.daa.jp/web.html
その他の回答 (4)
- metametamu
- ベストアンサー率51% (153/295)
tab消えちゃいましたね・・・ 仮に全角スペースで余白を取っておきます。 <?xml version="1.0" encoding="UTF-8"?>
お礼
ご丁寧な解説、本当にありがとうございました。 おかげさまで、 IE6は互換モード それ以外は標準モード での表示で解決できました。 ありがとうございました!!
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
表示に使用されているブラウザの種類を調べて、出力するHTMLを変えたいと言うことでしょうか?。 基本的にはサーバーサイドのプログラム(CGI、Servlet等)でブラウザタイプ(HTTPリクエストヘッダより判別出来るはず)を調べてHTML出力を制御するのではないでしょうか?。 参考まで。
お礼
解決いたしました。 ありがとうございました!
補足
すみません、知識が無さ過ぎて、おっしゃってくれたことの意味をちゃんと理解することができませんでした・・・。 サーバサイドのプログラムというのは、今回で言うと、私のHTMLをおくサーバのプログラムということでしょうか? つまり、CGI、Servlet等で、ブラウザを調べるプログラムを組まないといけないということでしょうか・・・・? 「表示に使用されているブラウザの種類を調べて、出力するHTMLを変えたいと言うことでしょうか?」 ↑まさにおっしゃるとおりです。 なぜなら、作ったJ-queryではIEでは上手く動作してくれなかったからです・・。 しかし、私では、そのJ-queryをIE対応に直す技術がないということもわかりました。 そこで表示させるHTMLファイル自体の名前を変えて、2ファイル作り、リンクをブラウザによって分けようとおもった次第でした。
- metametamu
- ベストアンサー率51% (153/295)
ちゃんと表示されないということはCSSでしょうか? DTD宣言を変更するより、条件付コメントを利用してcssを読み込み、IEでも標準準拠モードで表示できるように上書きしてみてはどうでしょうか。 http://www.respect-pal.jp/coding-text/tips/07.php
お礼
ありがとうございます!!! そうです、CSSなんです!!! マウスオンで、別のテキストが表示されるようなJ-queryをくみましたがHTMLだとIEでは動作し、その他のブラウザでレイアウトが崩れてしまいます。 そしてXHTMLだと、IEでは動作が変で、他のブラウザではちゃんと動作するのです。 そこで、IEとその他のブラウザで開くHTMLファイルを変えようかとおもった次第でした。 すみません、全然説明が不足しておりました。 条件付コメントですね! ありがとうございます!!! ちょっとやってみます、できたらまたご報告いたします。 取り急ぎお礼させていただきました 本当にありがとうございました!!
- yyr446
- ベストアンサー率65% (870/1330)
よくわからん話ですが、クリックしたときに開くHTMLファイルを変えたいのなら、 「XHTML1.0 traditionalで作ったページと、HTML4.01 strict で作ったページを別のファイル名にしておくしかない!クリックされたらIEのjscriptの条件付コンパイルで、リンク先のURLを変える」と、思うんですがそおいう質問じゃ無いですよね。 <a href="A.html" id="hoge">Jump</a> <script type="text/javascript"> var url = /*@cc_on@if(1) B.html;@else@*/ A.html;/*@end@*/ document.getElementById("hoge").href = url; </script> それとも、条件付きTAGの話でしょうか、例えばIEの時だけ別の外部CSSを使うんなら <link rel="stylesheet" href="other.css" type="text/css" media="screen" /> <!--[if IE]> <link rel="stylesheet" href="IE.css" type="text/css" media="screen" /> <![endif]--> みたいなのもありますけど..
お礼
ありがとうございます!! すみません、情報が不足しておりました。 「XHTML1.0 traditionalで作ったページと、HTML4.01 strict で作ったページを別のファイル名にしておくしかない!クリックされたらIEのjscriptの条件付コンパイルで、リンク先のURLを変える」 ということでした!すみません。 CSSを利用したXHTMLファイルがありますが、それを HTMLのDTD宣言をすると、IEではうまくいき、IE以外では上手く行かず、 XHTMLのDTD宣言をすると、IEではうまくいかず、IE以外で上手くいく という状況です・・・。 つまりなぜ上手くいっていて、なぜ上手く行かないのかがわからないので 宣言内容を変えて、おっしゃられるとおりにファイルを2つにわけようと考えた次第でした。 よく考えてみると条件付CSSだと、私にはIEで上手くいかない理由がさっぱりわからないので、条件をつけても、IEで動作させるCSSを作ってあげることができません・・・ つまりyyr446さんのおっしゃるXHTML1.0 traditionalで作ったページと、HTML4.01 strict で作ったページを別のファイル名にしておくしかない!クリックされたらIEのjscriptの条件付コンパイルで、リンク先のURLを変えるという方法で、実現できるとおもいました! 全く説明がわかりずらくてすみませんでした。 ちょっとやってみます!! 取り急ぎお礼させていただきました。 本当にありがとうございました!!! できたらまたご報告させていただきます! ありがとうございました!!
補足
すみません、とても基本的な質問をさせていただいていいでしょうか。たぶんご説明いただいた前者のソースで実現できそうなのですが、 var url = /*@cc_on@if(1) B.html;@else@*/ A.html;/*@end@*/ document.getElementById("hoge").href = url; この部分はどのように記述したらよいのでしょうか・・・。 またこれで、ブラウザを判断している部分はどこになるのでしょうか。*や@はJAVAで見たことがないのですが、そのまま書き込んでしまっていいのでしょうか? すみません、ご教授お願いできますでしょうか。
お礼
できました!!!ありがとうございます!!! 本当に助かりました!!!! ありがとうございました!! バグについてもじぜんに調べることにしました。 ご教授いただいたページは、とてもわかりやすかったです。 本当にありがとうございました