IEとIE以外のブラウザで表示内容を変えたい

このQ&Aのポイント
  • IEとIE以外のブラウザで表示内容を変える方法について教えてください
  • XHTMLファイルでは、IEとIE以外のブラウザで正しく表示されないため、リンク先のファイルを変えたいです
  • どうすればブラウザごとに異なるHTMLファイルを開けるようになるのでしょうか
回答を見る
  • ベストアンサー

IEとIE以外のブラウザで表示内容を変えたい

初めて質問させていただきます。情報に不足があったらすみません。 追加表示させていただきます。 色々調べましたが、Javascriptで、どうしても、実現できないので、 どなたか、ご教授いただけませんでしょうか・・・。 XHTMLのファイルだと、IEだとちゃんと表示されないので、 IEとIE以外のブラウザで下記のようにリンク先ファイルの種類をかえたいとおもっています。 (1)IE以外 : A.html これは → <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (2)IE :B.html これは→ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> クリックするとリンク先が開くヘルプファイルのようなものなのですが、 ブラウザによって、クリックしたときに開くHTMLファイルを変えたいのですが 可能でしょうか・・・。 色々調べましたがどうしてもわかりませんでした。 どなたかご教授いただけたら、本当にとてもありがたいです。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

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

mamamama-go
質問者

お礼

できました!!!ありがとうございます!!! 本当に助かりました!!!! ありがとうございました!! バグについてもじぜんに調べることにしました。 ご教授いただいたページは、とてもわかりやすかったです。 本当にありがとうございました

その他の回答 (4)

回答No.5

tab消えちゃいましたね・・・ 仮に全角スペースで余白を取っておきます。 <?xml version="1.0"    encoding="UTF-8"?>

mamamama-go
質問者

お礼

ご丁寧な解説、本当にありがとうございました。 おかげさまで、 IE6は互換モード それ以外は標準モード での表示で解決できました。 ありがとうございました!!

回答No.3

表示に使用されているブラウザの種類を調べて、出力するHTMLを変えたいと言うことでしょうか?。 基本的にはサーバーサイドのプログラム(CGI、Servlet等)でブラウザタイプ(HTTPリクエストヘッダより判別出来るはず)を調べてHTML出力を制御するのではないでしょうか?。 参考まで。

mamamama-go
質問者

お礼

解決いたしました。 ありがとうございました!

mamamama-go
質問者

補足

すみません、知識が無さ過ぎて、おっしゃってくれたことの意味をちゃんと理解することができませんでした・・・。 サーバサイドのプログラムというのは、今回で言うと、私のHTMLをおくサーバのプログラムということでしょうか? つまり、CGI、Servlet等で、ブラウザを調べるプログラムを組まないといけないということでしょうか・・・・? 「表示に使用されているブラウザの種類を調べて、出力するHTMLを変えたいと言うことでしょうか?」 ↑まさにおっしゃるとおりです。 なぜなら、作ったJ-queryではIEでは上手く動作してくれなかったからです・・。 しかし、私では、そのJ-queryをIE対応に直す技術がないということもわかりました。 そこで表示させるHTMLファイル自体の名前を変えて、2ファイル作り、リンクをブラウザによって分けようとおもった次第でした。

回答No.2

ちゃんと表示されないということはCSSでしょうか? DTD宣言を変更するより、条件付コメントを利用してcssを読み込み、IEでも標準準拠モードで表示できるように上書きしてみてはどうでしょうか。 http://www.respect-pal.jp/coding-text/tips/07.php

mamamama-go
質問者

お礼

ありがとうございます!!! そうです、CSSなんです!!! マウスオンで、別のテキストが表示されるようなJ-queryをくみましたがHTMLだとIEでは動作し、その他のブラウザでレイアウトが崩れてしまいます。 そしてXHTMLだと、IEでは動作が変で、他のブラウザではちゃんと動作するのです。 そこで、IEとその他のブラウザで開くHTMLファイルを変えようかとおもった次第でした。 すみません、全然説明が不足しておりました。 条件付コメントですね! ありがとうございます!!! ちょっとやってみます、できたらまたご報告いたします。 取り急ぎお礼させていただきました 本当にありがとうございました!!

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

よくわからん話ですが、クリックしたときに開く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]--> みたいなのもありますけど..

mamamama-go
質問者

お礼

ありがとうございます!! すみません、情報が不足しておりました。 「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を変えるという方法で、実現できるとおもいました! 全く説明がわかりずらくてすみませんでした。 ちょっとやってみます!! 取り急ぎお礼させていただきました。 本当にありがとうございました!!! できたらまたご報告させていただきます! ありがとうございました!!

mamamama-go
質問者

補足

すみません、とても基本的な質問をさせていただいていいでしょうか。たぶんご説明いただいた前者のソースで実現できそうなのですが、 var url = /*@cc_on@if(1) B.html;@else@*/ A.html;/*@end@*/ document.getElementById("hoge").href = url; この部分はどのように記述したらよいのでしょうか・・・。 またこれで、ブラウザを判断している部分はどこになるのでしょうか。*や@はJAVAで見たことがないのですが、そのまま書き込んでしまっていいのでしょうか? すみません、ご教授お願いできますでしょうか。

関連するQ&A

  • ie6で画像のpaddingを表示させたい

    seesaaブログユーザーです。 seesaaはxhtmlで記述しているようでソースの先頭は 1:<?xml version="1.0" encoding="Shift_JIS"?> 2:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (1:は一行目, 2:は二行目であることを表しています) のようになっています。 これを 1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> もしくは 1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2:<?xml version="1.0" encoding="Shift_JIS"?> としても問題ないのでしょうか? と、質問させていただいた理由は 画像に枠をつけたいと思って、cssでimgにpaddingを指定したのですが ie6では表示されないのでこれを何とかしたいからです。 http://www.koikikukan.com/archives/2006/03/11-015552.php の記事を参照してわかったのですが、 この状態ですと画像のpaddingがie6では適用できないのですね。 そこで、記事にあるようにdoctype宣言を先頭に持っていくと ie6でも表示されるようになりました。 ということで、 「<?xml version="1.0" encoding="Shift_JIS"?>」 の扱いについて質問させていただきます。

    • ベストアンサー
    • XML
  • DreamweaverのXHTMLとIEの関係

    現在作成しているサイト(ホームページビルダーで作ったもの)をDreamweaverでHTMLからXHTMLに変換しようと思い変換してみると 私のサイトはインラインフレームに情報を表示しているのですが、 文字がはみ出していないのにもかかわらず横スクロールバーがでてしまいます。 原因を突き止めようと色々していると、変換時に出てくる <!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> があると横スクロースバーがでることはわかりました。 しかし、これを消してしまうとDreamweaverがXHTMLとして認識してくれません。 <!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> を消さずに横スクロールバーを消す方法は無いでしょうか? ちなみにFireFoxでは横スクロースバーはでません。 IEのみでます。

  • CSSでの中央寄せにかんする疑問

    .main { margin:0 auto; width:1000px; } とCSSファイルに記述することにより中央よせをしようとしています。 IE8以外のブラウザでは中央に寄るのですが、IE8では実現しません。 実はこのCSSの記述は私が以前作成したサイトからコピーしていて、そのサイトではすべてのブラウザで中央に寄っています。 今回作成したサイトではこのようなトラブルに陥りました。 で、苦し紛れでDOCTYPE宣言を <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> から <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> に変更したらIE8でも中央に寄りました。 なぜ、このようなことになったのでしょうか? 教えてください。 よろしくお願いします。(Apacheのバージョンとかがかかわっている?)

    • ベストアンサー
    • HTML
  • XHTML 1.0 Transitional でインラインフレームの表示方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> でインラインフレームを表示する方法はありますか? 普段は <DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">のドキュメントタイプでサイトを作っているのですが、他の人に作ってもらったサイトが上記のタイプで作られていました。そのサイトにiframeを組み込みたいのですが、表示がされませんでした。そこで、HTML 4.01 のタイプに変更したところ、文字の大きさや高さなどが崩れてしまいます。何かよい方法がありましたら教えてください。宜しくお願いします。

    • ベストアンサー
    • HTML
  • DOCTYPE宣言とdocument.body.clientHeight

    お世話になります。 ブラウザのサイズを取得するにはどうすればよいのでしょうか? document.body.clientHeightで取得出来るのは分かりましたが DTDにより動作したり、しなくなるのも分かりました。 ×動作しない <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ○動作する <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 後者のものですとIEでは動作しますが、firefoxでは動作しません。 何か対処法は、御座いませんでしょうか? 一番望む形は <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> の宣言で、ブラウザサイズが取れるようになるのがベストです。 CSSを使用しているので<?xml version="1.0" encoding="UTF-8"?>を入れると 表示モードが互換になるので・・・。 対応したいブラウザはIE6.0、firefox,Safariです。 一応ソース <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script> function init(){ var bodyHeight = document.body.clientHeight; alert(bodyHeight); } </script> </head> <body onload="init();"> <div> ほげ </div> </body> </html>

  • phpでreadfile(include)した結果に?が出力される

    phpで以下のようなA,Bの2つのファイル構成にした際に ブラウザでAをアクセスし、ソースを表示するとreadfileした結果の前に「?」が出力されます。 「?」と出力されるのが何か問題だと思うのですが、分かりません。 ご指南をお願いいたします。 ?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> Aファイル <?php readfile('inc/xhtml.inc'); include('inc/dbcon.php'); include('inc/cm468_2.inc'); ?> ----------- Bファイル <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> -------------------------------- 出力結果 ?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

    • ベストアンサー
    • PHP
  • ホームページをブラウザの中央に表示したい

    作成したHPをブラウザの中央に表示したいのですが 現在は左寄せで表示されてしまいます。 ご存じの方がいらっしゃたら教えてください。 作成ソフトはホームページビルダー13で、 どこでも配置モードです。 DCCTYPEの設定は以下の内容に変更しております。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  • hp作成 Firefox javascript dreamweaver

    dreamweaverでHPを作成する時に <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> が入力されています。 この<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">が入力されているとFirefoxでjavascriptを表示できません。 Firefoxでjavascript表示したい時(DTD)はどのような表示が良いでしょうか?

  • 画像をループさせて表示させたい。

    すみません、jquery初心者です。 下記サイトのようにコンテンツをループで表示させたいのですが、 http://yurubu.org/jquery-autoload/513 HTMLの <!DOCTYPE html> <html lang="ja"> を <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio … <html xmlns="http://www.w3.org/1999/xhtml"> に変更すると動きません。。 どう変更すれば動くのでしょうか? ご教授頂けると大変助かります。 よろしくお願いします。

  • ホームページビルダー10のバグ??

    勝手にhtmlを省略してしまい困っています。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> と書いて保存しもう一度見ると <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> だけになってしまいます。百歩譲ってこれでもhtml適には 問題ないかと思うのですが勝手に省略させないようにする方法は ないでしょうか?