<A HREF="javascript…で動作しない

[新着] Webテンプレートを仮オープンしました



0   名前: 夜生 : 2006/11/21(火) 16:10  ID:C1AWHl2S
【何をしたいのか】
用語集を作成しています。
重要度を☆の画像で表示しますが、何度も同じ画像の表示が続くので、関数化してjavascriptで記述したいと思っています。
社内研修用のHPのため、個人のホームページ作成程度のスキルしかありません。


【現在の状況】
BODY内に直接記述だと上手く動作するのですが、関数化(HEAD内にSCRIPTを記述、A HAREF="…"で呼びだし)をすると画像がまったく表示されず、上手く動作しません。

【ソース(抜粋)】
<HTML>
<HEAD>
<TITLE>タイトル</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="CSS.css">
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function star()
{
document.write('<IMG SRC="../img/star.gif" ALT="" WIDTH="11" HEIGHT="11" HSPACE="2" VSPACE="0">');
document.write('<IMG SRC="../img/star.gif" ALT="" WIDTH="11" HEIGHT="11" HSPACE="2" VSPACE="0">');
}
</script>
//-->
</SCRIPT>
</HEAD>


<BODY>
…(中略)…

<dl>
<dt><RUBY><rb>用語</rb><rp><FONT size="-1">【</rp><rt>ヨウゴ</rt><rp>】</FONT></rp></RUBY>
<span class="important">重要度:<A HREF="javascript:star()"></A></span>
</dt>
<dd>
用語の意味<dd>



記述など、おかしい点があれば教えて下さい。
環境はWinXP、IE6です。
どうぞ宜しくお願い申し上げます。

1   名前: XTREE : 2006/11/21(火) 16:10  ID:cHPvPCHG
そもそもなぜJavaScriptでやらなきゃいけないの?

2   名前: 夜生 : 2006/11/21(火) 16:10  ID:C1AWHl2S
XTREEさま、早速のレスありがとうございます。
絶対にjavascriptでやらなければいけない必要性、というものはありません。
ただ用語が、あ〜わ・A〜Zまで、何十個とありまして…
ちょっと省力化したいな、と思ったのがまず1つめ。
あと、できればこの後、引数を渡して、for文などで画像の数をコントロールし、メンテナンス性をあげたいなと思ったのがJavascriptでと思った2つめの理由です。
(star(1)→☆の画像1つ、という風に)
用語を何十個もHTMLの中に直接記述している時点で、メンテナンス性ってどうなの…と思ってもいますが…
どうぞ宜しくお願い申し上げます。

3   名前: XTREE : 2006/11/21(火) 16:10  ID:cHPvPCHG
レスすいません。主旨はわかりました。

要所のみ書き換えると、こんな感じかな。
nは0以上の任意の整数でその数ぶんの星が表示されます。
実際には、
<span class="important">重要度:<script>star(2)</script></span>
のようにstar(2)とかで指定。


<script type="text/javascript">
function star(n)
{
aster='';
for(var i=0;i<n;i++){
aster+='<IMG SRC="../img/star.gif" ALT="" WIDTH="11" HEIGHT="11" HSPACE="2" VSPACE="0">';
}
return document.write(aster);
}
</script>
</head>
<body>

<dl>
<dt><RUBY><rb>用語</rb><rp><FONT size="-1">【</rp><rt>ヨウゴ</rt><rp>】</FONT></rp></RUBY>
<span class="important">重要度:<script>star(2)</script></span>
</dt>
<dd>

4   名前: XTREE : 2006/11/21(火) 16:10  ID:cHPvPCHG
すいません。ちょっと訂正。

function star(n)
{
aster='';
for(var i=0;i<n;i++){



function star(n)
{
var aster='';
for(var i=0;i<n;i++){

の方がいいですね。

5   名前: 夜生 : 2006/11/21(火) 16:10  ID:C1AWHl2S
XTREEさま、どうもありがとうございました!!
そのままコピーさせていただき、書き換えたところ、きちんと動作しました。
行き詰っていた箇所だけでなく、☆の表示コントコールまでお助けいただき、大変助かりました。

<script>star(2)</script>

こういう呼び出し方があったんですね、まったく気が付いていませんでした。
記述(write)のところといい、本当にどうもありがとうございました。

一覧へ戻る