SCRIPT タグの注意点

以下の内容は、スケルトンソース生成時に Java 標準 HTML パーサーを使用した際の注意点です。
XHTML や、-neko true を指定した場合には発生しません。

出力結果からですが、Java 標準の HTML パーサー(XHTML は関係ありません)の振るまいが以下のように推察されます。
これを考慮して HTML モックアップを作成する必要があります。

No SCRIPTタグ位置 書き方 現象 Paraseleneのフォロー
1 <HEAD>内部   特に問題なし  
2 <BODY>内部 </SCRIPT><NOSCRIPT>xxxx</NOSCRIPT>
のように、閉じタグに続けて別のタグがある。
後続のタグが「テキスト」として通知される。
また、その1文字目は破壊され、別の文字として通知される。
左記の例では、"SOSCRIPT>xxxx"のようなテキストを通知してくる。
対応不可。
3 </SCRIPT>
<NOSCRIPT>
のように、閉じタグの後、改行している。
本来存在しないはずのテキストを1文字通知してくる。
予想、改行コードが破壊されて通知されているものと思われる。
左記の例では、"<"のように、次のタグの先頭と思われるものを通知する。
SCRIPTタグ直後に通知されたテキストは、1文字読み捨てている。
※Readme.htmlにその旨出力される。
No1は考慮の必要はありません。
No3は Paraselene のフォローにより回避できていると思います。

No2は Paraselene では回避できません。
これを判定しようとしても、

  1. 先頭1文字が破壊される。
  2. 破壊されていなくとも、そのテキストが実はタグであるかどうか調べるには、自前で HTML をパースする必要がある。
    Java 標準のパーサー動作を検証するために、自前パーサーを準備するのも本末転倒なので。

という事で、この現象の回避は諦めました。
<BODY>中に登場する<SCRIPT>の閉じタグの直後には、必ず改行を入れて下さい。

最終更新: 2009/10/13
特に明示されていない限り、本Wikiの内容は次のライセンスに従います:CC Attribution 3.0 Unported
文書の先頭へ
SourceForge.JP
2009 © Akira Terasaki.  
Driven by DokuWiki The Apache Software Foundation