- - PR -
xsl+javascriptがfirefox, netscapeで動かない。ieでは動く。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-08-09 05:56
ファイル:
http://web.umr.edu/~mi9p8/temp/test011__doc1+2_all.xml http://web.umr.edu/~mi9p8/temp/test011__doc2.html http://web.umr.edu/~mi9p8/temp/test011__doc1.html http://web.umr.edu/~mi9p8/temp/test011__combine.xsl http://web.umr.edu/~mi9p8/temp/test011__fold.js (以下「http://web.umr.edu/~mi9p8/temp/test011__」の部分は省略します。) 使用ブラウザ: Firefox 2.0.0.6 Netscape7.1 IE6 SP2 問題の状況: 1)doc2.htmlを開くと、fold.jsの機能も含めて、上記いずれのブラウザでも正常に表示できます。 2)しかし、doc1+2_all.xmlを開くと、IEでは正常に動作しますが、FirefoxおよびNetscapeでは、読み込み中のままで、まったく表示されません。 3)そこで、doc1+2_all.xmlのxslを書き換えて、fold.jsを読み込まないようにすると、いずれのブラウザでも正常に表示できます。 この状況から、おそらく、xslに<script>タグを書き込ませているあたりが問題なのだろうと思うのですが、原因が見つけられないので、アドバイスをいただければと思っております。 - fold.jsは、html文書内の項目を折りたたむためのスクリプトです。class="js_open"の属性をもつ要素を折りたたみます。(私が作ったものではないのですが。) - doc2.htmlは、単純なhtmlで、fold.jsを読み込んでいます。「purple is black」をクリックすると次の段落の折りたたみができます。 - doc1+2_all.xmlを開くと、combine.xslの作用で、サブ文書、doc1.htmlとdoc2.htmlを読み込んでまとめて表示します。サブ文書は<h5>のタイトル行(「HTML Document 2」など)をクリックすると折りたためるようになっています。 よろしくお願いします。 |
|
投稿日時: 2007-08-11 13:24
解決しました。Firefoxでは、スタイルシートの処理を行った後にjavascriptが呼ばれるので、javascriptが書き込む文字列が、文書の内容を上書きしていることが原因でした。
Internet Explorerでは、逆に、まずjavascriptが呼ばれ、それからスタイルシートが呼ばれるようです。 |
1