« Macブラウザと半角円マーク/半角バックスラッシュ(EUC-JP編) | トップページ | Firefoxとテキストエリアの限界(続編) »

2006/10/11

Mac版Firefox 1.5.0.7及びNetscape 7.1のテキストエリアの限界(半角英数字が4,682文字以上連続すると、文字が消える!!)



日本hpのオンラインストア「hp directplus」

最近、「HTMLソースを隠す方法」の続編として、JavaScript難読化についてのホームページをまとめていました。

その中で、半角スペース・改行などを取り除いて、難読化させたソースをサンプルとして表示させようと、テキストエリア内に表示させようとするのですが、奇妙な現象に悩まされることになりました。

textarea内で「wrap=soft」としても見た目が改行されないのは理解できましたが、そうではなくて、Mac版Firefox1.5.0.7とNetscape 7.1、Camino(つまりMacのMozilla系ブラウザ。)で、テキストエリア内のソースが全く表示されない現象に出会ったのです。それも、テキストエリア内に表示させているソースは何ページもあるのですが、そのうちの数ページのみ、そのような現象が発生したのです。全部のページで発生したわけではなかったのです。

調べてみると、次のような事実が分かりました。

  • Windows版FirefoxやNetscape 7.1では全くこの現象は発生しない。( 詳しく調べてみると、後で、Windows版でも発生することが分かりました。参照:「Firefoxとテキストエリアの限界(続編)

  • この現象が発生するのは、テキストエリア内の文字数が多い場合である。
  • ためしに、適当な個所で1個所でも改行を入れてみると、ちゃんと表示されます。
そこで、「『改行なし』『スペースなし』で、一定の文字数以上になると、表示されなくなるのではないか」とアタリをつけて、調べてみると、4681文字と4682文字がその境目であることが分かりました。

 Windows版FirefoxやNetscape 7.1でも実は文字数の限界があるかもしれないと思って、2万字(20,000バイト。半角スペース・改行なし。)程度まで調べてみましたが、とりあえず2万字程度では不具合は発生しませんでした。)→2006年10月12日午後15時頃追記: たしかに2万字では不具合は発生しない(XP)のですが、37,445文字以上でWindows版Firefoxでも発生することが分かりました。参照:「Firefoxとテキストエリアの限界(続編)

4,681文字というのは、何とも中途半端な数字だとは思いましたが、テキストエリア内の文字を別のものに変えても、この4,681文字まではOKで、4,682文字以上になると、文字が消えてしまう(消えたように見える)ことが分かりました。

JavaScriptで本当に消えてしまっているのか調べてみてみたら、消えたように見えるだけで、実際は存在していることが分かりました。何とも奇妙な話ですが、そのようになりました。

●(テストページ)Mac版Firefox 1.5.0.7及びNetscape 7.1のテキストエリアの限界
http://www.shtml.jp/blog/mac_firefox_textarea.html

がそのテストページです。

仕方がないので、テキストエリア内に難読化したソースを表示させるのではなくて、table内で表示させたらどうだろうかと考えてみたのですが、なんと、table内では、さらに少ない文字数で、Mac版FirefoxやNetscapeで不具合が発生したのです。

●(テストページ)Mac版Firefox 1.5.0.7及びNetscape 7.1のtableの限界(半角英数字が4,199文字以上連続すると、文字が消えます。)
http://www.shtml.jp/blog/mac_firefox_table.html

4,198文字までならOKですが、4,199文字以上ならアウトでした。半角スペースや半角改行、全角文字が途中で入っていれば問題は起きません。Windows版FirefoxやNetscapeでは問題になりません。Mac版でのみ発生します。

仕方がないので、該当するブラウザの場合は、途中で改行して表示させ、「本当は一行なんだよ」という注意書きを出すことにしました。もっと良い解決策があればなと思っていますが、まだ分かっていません。

※2006年10月12日15時頃追記: Mac版Firefoxでも、次世代の2.0 RC1やRC2では、完全でないものの、いくぶん、この不具合は改善されています。(参照:「Firefoxとテキストエリアの限界(続編)



【格安パソコンなら!ソーテックオンラインショップ!】

|

« Macブラウザと半角円マーク/半角バックスラッシュ(EUC-JP編) | トップページ | Firefoxとテキストエリアの限界(続編) »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/12247774

この記事へのトラックバック一覧です: Mac版Firefox 1.5.0.7及びNetscape 7.1のテキストエリアの限界(半角英数字が4,682文字以上連続すると、文字が消える!!):

« Macブラウザと半角円マーク/半角バックスラッシュ(EUC-JP編) | トップページ | Firefoxとテキストエリアの限界(続編) »