耳で操るパソコンライフ
視覚障害者用のウィンドーズ画面読み上げソフトを使っての、私のパソコンライフについて、つれづれなるがままに書き連ねていこうかと。。
すみません、こちらのページはまだ準備中です。 (^.^;
…っと思ったのですが、いきなり「どなたかわかるかたHELPっ!」っということで。。
実は、このホームページのニューススクラップというページで、初めてXMLというのに取り組んでみました。
やっていることは、news.xmlというファイルに、ニュースの日付と見出し、本文のデータベースを作って、それをnews.xslというスタイルシートでニュースの見出しの一覧をブラウザに表示させるということです。(上の「ニューススクラップ」というリンクをクリックして表示されるのがその結果です。)
それで、実は、その表示されている見出しの一覧の中から、読みたい記事の見出しをクリックすると、その記事の内容が別ウィンドウで表示されるようにしたい… っというか、自分のパソコンの中では(ハードディスク上では)、思い通りの動作が実現できているんですが、なぜかネット上にアップロードすると、うまく動いてくれないのです。 (^.^;
ようは記事本文を表示させるJavaScriptの方に、何か問題があるような気がするんですが、とりあえず以下に、そのScriptを呼び出しているxslの部分と、Scriptのソースをペーストしてみますね。
<?xml version="1.0" encoding="Shift-JIS" standalone="no" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head>
<title>ニューススクラップ</title>
<script type="text/javascript" charset="shift_jis" language="JavaScript" src="kijiview.js"></script>
<!-- ↑↑ 記事を表示するJavaScriptを呼び出してます ->
</head>
<body>
〜 中略〜
<xsl:apply-templates select="news" />
<!-- ↑↑見出し一覧表示用のテンプレートを呼び出します ->
〜中略〜
</body>
</html>
</xsl:template>
<xsl:template match="news">
<tr><td><h2>教育・子育て</h2>
<ol>
<xsl:if test=".[@class$eq$'kyouiku']">
<!-- ↑↑classが「教育」のものをピックアップ -->
<li>
<a href="#">
<xsl:attribute name="onclick">
<!-- ↑↑アンカータグに「onclick」アトリビュートを追加 -->
winOpen("<xsl:value-of select="id"/>")
<!-- ↑↑「onclick」でkijiview.js内のwinOpen関数を呼び出しマッチした記事のidを渡す ->
</xsl:attribute>
<xsl:value-of select="midasi"/>
</a>
(<xsl:value-of select="hiduke" />)</li>
</xsl:if>
</xsl:for-each>
</ol><br /></td></tr>
〜中略〜
</xsl:template>
</xsl:stylesheet>
それで、次に呼び出されるJavaScriptが以下の「kijiview.js」です。
function winOpen(nam){
var objDoc=new ActiveXObject("Microsoft.XMLDOM");
bln=objDoc.load("news.xml");
objDoc.async=false;
strFilter = "/news/kiji[id $eq$ '" + nam + "']";
var domElement=objDoc.selectSingleNode(strFilter);
var childElement=domElement.childNodes;
vwin = window.open();
vwin.document.writeln("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=shift_jis\"><meta http-equiv=\"Content-Style-Type\" content=\"text/css\">");
vwin.document.writeln("<link href=\"../gen.css\" rel=\"stylesheet\" type=\"text/css\"><title>" + childElement.item(2).text + "</title></head>");
vwin.document.writeln("<body><font size=\"4\"><center><br><table border=\"1\" width=\"480\" cellpadding=\"8\"><tr><td>");
vwin.document.writeln("<h1 align=\"center\">" + childElement.item(2).text + "</h2>");
vwin.document.writeln("<div align=\"right\">" + childElement.item(1).text + "</div>");
vwin.document.writeln(childElement.item(3).xml);
vwin.document.writeln("</td></tr></table><br /><a href=\"#\" onclick=\"window.close()\">記事を閉じる</a></center></font></body></html>");
vwin.document.close();
}
どうも、このスクリプトの2行目「objDoc=new ActiveXObject("Microsoft.XMLDOM");」というあたりで躓いているような気がしているんですが。。 (^.^;
どなたかおわかりの方は、解決法を教えていただけませんでしょうか。
下記メールアドレスか、サイト内のブログでも掲示板にでもよろしくお願い致します。 m(__)m
↑↑の問題は、おかげさまで解決致しました。
ありがとうございました。
このページも、近日中に(?)内容を変更致しますので…。
|