許せない心理テスト

初めて質問させていただきます。情報に不足があったらすみません。
追加表示させていただきます。
色々調べましたが、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-transitio …

(2)IE :B.html これは→ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

クリックするとリンク先が開くヘルプファイルのようなものなのですが、
ブラウザによって、クリックしたときに開くHTMLファイルを変えたいのですが
可能でしょうか・・・。

色々調べましたがどうしてもわかりませんでした。
どなたかご教授いただけたら、本当にとてもありがたいです。
どうぞよろしくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

できました!!!ありがとうございます!!!
本当に助かりました!!!!

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

本当にありがとうございました

お礼日時:2010/12/22 07:05

tab消えちゃいましたね・・・


仮に全角スペースで余白を取っておきます。
<?xml version="1.0"    encoding="UTF-8"?>
    • good
    • 0
この回答へのお礼

ご丁寧な解説、本当にありがとうございました。

おかげさまで、
IE6は互換モード
それ以外は標準モード
での表示で解決できました。

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

お礼日時:2010/12/22 07:06

表示に使用されているブラウザの種類を調べて、出力するHTMLを変えたいと言うことでしょうか?。


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

この回答への補足

すみません、知識が無さ過ぎて、おっしゃってくれたことの意味をちゃんと理解することができませんでした・・・。

サーバサイドのプログラムというのは、今回で言うと、私のHTMLをおくサーバのプログラムということでしょうか?
つまり、CGI、Servlet等で、ブラウザを調べるプログラムを組まないといけないということでしょうか・・・・?

「表示に使用されているブラウザの種類を調べて、出力するHTMLを変えたいと言うことでしょうか?」

↑まさにおっしゃるとおりです。

なぜなら、作ったJ-queryではIEでは上手く動作してくれなかったからです・・。
しかし、私では、そのJ-queryをIE対応に直す技術がないということもわかりました。

そこで表示させるHTMLファイル自体の名前を変えて、2ファイル作り、リンクをブラウザによって分けようとおもった次第でした。

補足日時:2010/12/21 20:14
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/22 07:38

ちゃんと表示されないということはCSSでしょうか?


DTD宣言を変更するより、条件付コメントを利用してcssを読み込み、IEでも標準準拠モードで表示できるように上書きしてみてはどうでしょうか。

http://www.respect-pal.jp/coding-text/tips/07.php
    • good
    • 0
この回答へのお礼

ありがとうございます!!!
そうです、CSSなんです!!!
マウスオンで、別のテキストが表示されるようなJ-queryをくみましたがHTMLだとIEでは動作し、その他のブラウザでレイアウトが崩れてしまいます。
そしてXHTMLだと、IEでは動作が変で、他のブラウザではちゃんと動作するのです。
そこで、IEとその他のブラウザで開くHTMLファイルを変えようかとおもった次第でした。

すみません、全然説明が不足しておりました。


条件付コメントですね!
ありがとうございます!!!
ちょっとやってみます、できたらまたご報告いたします。
取り急ぎお礼させていただきました
本当にありがとうございました!!

お礼日時:2010/12/21 19:48

よくわからん話ですが、クリックしたときに開く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]-->

みたいなのもありますけど..

この回答への補足

すみません、とても基本的な質問をさせていただいていいでしょうか。たぶんご説明いただいた前者のソースで実現できそうなのですが、

var url = /*@cc_on@if(1) B.html;@else@*/ A.html;/*@end@*/
document.getElementById("hoge").href = url;

この部分はどのように記述したらよいのでしょうか・・・。
またこれで、ブラウザを判断している部分はどこになるのでしょうか。*や@はJAVAで見たことがないのですが、そのまま書き込んでしまっていいのでしょうか?

すみません、ご教授お願いできますでしょうか。

補足日時:2010/12/21 20:22
    • good
    • 0
この回答へのお礼

ありがとうございます!!

すみません、情報が不足しておりました。
「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を変えるという方法で、実現できるとおもいました!

全く説明がわかりずらくてすみませんでした。
ちょっとやってみます!!

取り急ぎお礼させていただきました。
本当にありがとうございました!!!
できたらまたご報告させていただきます!
ありがとうございました!!

お礼日時:2010/12/21 19:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報