変数の名前の取得
-
0 名前: 安藤 : 2006/11/13(月) 13:45 ID:Zm6vE89v
- *********************************************************
<HEAD>
<SCRIPT language="JavaScript">
<!--
var a;
var d="jump!";
function b()
{
a="http://test.com";
}
function c()
{
location.href=a;
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="b()">
<table width=100% border=1>
<tr>
<td>
<a href="javascript:c()">[dの中身を表示]</a>
</TD>
</tr>
</table>
</BODY>
*********************************************************
変数の中身で表示されたアンカーをクリックすると、
リンク先に飛ぶというスクリプトを組みたいのです。
ソースの中で、[dの中身を表示]というアンカー部分が
表示出来なくて困っています。
<SCRIPT src=〜.js>の指定を用いずに呼び出すことは可能でしょうか。
document.write(d)だと、新しいページに表示されてしまうので・・。
-
1 名前: 牛若 : 2006/11/13(月) 13:45 ID:Voxl8xGb
- <a href="javascript:c()"><script>document.write(d)</script></a>
でダメですか?
-
2 名前: 安藤 : 2006/11/13(月) 13:45 ID:Zm6vE89v
- 牛若さん、迅速なレスをありがとうございます。
上記サンプルプログラムの方はうまく行きました^^
引き続き質問させてください。
少しだけ、サンプルソースを変更しますね。
********************************************
<HEAD>
<SCRIPT language="JavaScript">
<!--
var a;
var d;//(ここを変更)
function b()
{
a="http://test.com";
d="jump!"; //(ここを変更)
}
function c()
{
location.href=a;
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="b()">
<table width=100% border=1>
<tr>
<td>
<a href="javascript:c()"><SCRIPT>document.write(d)</SCRIPT></a>
</TD>
</tr>
</table>
</BODY>
********************************************
上記は変数dの等式を関数b()内に移動して、ご教授どうりのスクリプトをあてはめたものです。
この場合、アンカーにはundefinedとなるのですが、dを表示したい時はどうすればよろしいでしょうか。
undefinedとなる理由は、全ソースを読んだ後にb()が読まれるため、
まだdに何も入っていないからだと思うのですが・・。
-
3 名前: 牛若 : 2006/11/13(月) 13:45 ID:zs0.YLrP
- <BODY onload="b()">とする必要性がなければ
function b()
{
a="http://test.com";
d="jump!"; //(ここを変更)
}
b();
とすればよいのではないですか?
それから、このコードでは「d」はグローバルなので、あえて明示的に
var d;//(ここを変更)
と宣言する必要はありません。
-
4 名前: 匿名 : 2006/11/13(月) 13:45 ID:IbwOHKIj
- >>3
スコープチェーンに関わるので、変数は極力var宣言すべき。
-
5 名前: 安藤 : 2006/11/13(月) 13:45 ID:Zm6vE89v
- お返事が遅れてすみません。
再度関数呼び出しをすればいいのですね。
解決しました。ありがとうございました。