NN4.x には link タグでスタイルシートを document.write すると HTMLファイルの
4KB境界位置に余分な文字列を挿入するバグがあるようです。
そこで、この現象が正確にはどのようなものか分析してみましょう。
<link rel="stylesheet" type="text/css" href="NN4_4kb.css">
<link rel="stylesheet" type="text/css" href="NN4_4kb.css">\n
つまり、<link rel="stylesheet"... > に改行コードを付けると HTML が壊れることになります。
多分、壊れる位置は 4KB固定ではなく document.write した位置から 4KB で切り上げた位置が 壊れるようです。
つまり正確には、壊れる位置は document.write の位置ではなく script タグの終了位置から切り上げた場所のようです
改行出力が問題ではなく linkタグ( stylesheet )の解釈上の問題であると想定されます
<link rel="index" href="index.htm">
を出力する
正確には <link rel="stylesheet"... >
の次の出力データの出力位置が
間違っていることが分かります。
補足
このような現象は必ず表示に現れるとは限りません。
この現象が発生しているかどうかを確認するには読み込んだ HTML のソースではなく
document.write の出力を展開した表示用の HTML を見る必要があります。
NN4.x はこれらの動作の結果をキャッシュの形で保存しますので、
確認にはこれらのファイルの内容を見て判断します。
NN4.x のアドレスバーに "about:cache" を入力すればどのファイルが何のキャッシュかを
判断できます。この中で URL が wysiwyg で始まるファイルが表示に使用されたファイルです。
また、間違った挿入をする位置は表示に使用したファイルではなく
読み込んだ HTML ソース上でバイナリエディタなどを使用して確認する必要があります。
また、このような現象が発生する組合せは linkタグ以外にもあるようです。
これらの情報の元ネタは
春永浩敏さんからの情報
です。
#> ども、ありがとうございます。