ブラウザによってページの一部を表示させなくするには?

[上に] [前に] [次に]
srereo [E-Mail] [HomePage] 1999/07/24(土) 14:22:51
初めまして、JavaScript初心者です。

Netscapeではあるページのすべてを表示して、
IEでは同じページの一部(70行程度でタグも含む)を表示させない、
ということをJavaScriptを使って実現したいと思っています。

そこで次のように書いてみましたが、予想した通りダメでした。
何か良い方法はないでしょうか?教えて下さい。

<script type="text/JavaScript">
<!--
(navigator.appName.charAt(0) == "M") {
document.write ('<!--') ;
}
// -->
</script>

---IEでは表示させない部分---

<script type="text/JavaScript">
<!--
(navigator.appName.charAt(0) == "M") {
document.write ('-->') ;
}
// -->
</script>

zizz... [HomePage] 1999/07/24(土) 17:00:09
実際にどういう結果になったか知らないので想像ですが、
"<!--" を書き出した後 "-->" を書く前に、
タグの一部 ">" が書いてあって、
コメントが終わりだと解釈されているのではないですか?

IEで表示させたくない部分をすべて
document.write で書き出すとはどうですか?
醜いけど。

maeda [E-Mail] 1999/07/24(土) 17:16:51
 うぅん、確かに醜いかも・・・(それとも「見にくい」の変換ミス?)。

 しかしながら、「仕様ブラウザがIE」かつ「JavaScriptを無効」にし
ている人が訪れた場合、srereoさんのやり方では表示されてしまいます
ね。それを防ぐ意味でも、zizz...さんの方法でやったほうがいいと思い
ます。

stereo [E-Mail] [HomePage] 1999/07/24(土) 17:40:24
zizz...さん、maedaさん、ありがとうございます。

実際に行った結果は、「-->」の前までがコメントととみなされて、
それより後の「) ;}// -->」というのが表示されてしまいました。

これを試す前に、お二人が仰ったように、document.writeを使ってみました。
それで、そのときは一行ずつ「document.write ('.....') ;」と書いたんですが、
どうにも汚くて、他に方法を探していたわけです。
でも、これしかないんですかね。

あと、JavaScriptやCSSを無効にしてる人ってどれくらいいるんでしょうか?
両方とも使えることを前提に作っているので、ちょっと心配です。

maeda [E-Mail] 1999/07/24(土) 19:46:25
あー、はいはい。原因は分かりました。
つまり、zizz...さんの予想通りだったようです。

>document.write ('-->') ;

の部分を、

document.write ('--\>') ;

とでも書けばうまく行くんじゃないでしょうか?(未確認)

おぱく堂 1999/07/25(日) 00:56:23
強引な方法だけど、IEで表示したくない部分は <iframe></iframe>で
挟んじゃうってのはどう? でも見栄え悪いかも。

Selly [E-Mail] 1999/07/25(日) 03:58:29
<comment>なんてどうですか?
IEだと表示されなくなります。

#IE3だとなんか問題があったような気がするけど。

stereo [E-Mail] [HomePage] 1999/07/25(日) 22:02:46
[[解決]]
みなさん,ありがとうございました.
<iframe>タグを使う方法でやってみようと思います.

[上に] [前に] [次に]