WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:マウスで新規ウインドウに画像

かずし [MAIL] [URL] [WriteDate : Fri May 11 15:30:37 2001]

はじめまして。JAVAスクリプト初心者なのですが、JAVAスクリプトが思うように動作しません。アドバイスをお願いします。

リンク文字にonmouseoverで新規ウインドウを開いて、 new Arrayで指定した画像を出す。onmouseoutで開いたウインドウを閉じる。click時は、動作無し。

ソース

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META name="GENERATOR" content="IBM WebSphere Homepage Builder Version 6.0.3.0 for Windows">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>TEST</TITLE>
<SCRIPT LANGUAGE="JavaScript1.1">
var kaoid = new Array(3);
kaoid[0] = "http://dipper.ne.jp/~s_kaz/gazou/kao_01.gif";
kaoid[1] = "http://dipper.ne.jp/~s_kaz/gazou/kao_06.gif";
kaoid[2] = "http://dipper.ne.jp/~s_kaz/gazou/kao_19.gif";
function openwin(num){
    var win =window.open("", "Miniwin","width=300,height=200,");
    with (win.document) {
         open();
            write("<HTML><HEAD><TITLE>Miniwin</TITLE></HEAD>");
            write("<BODY BGCOLOR='#000000'><CENTER>");
            write("<img src=kaoid[num]>");
            write("</CENTER></BODY></HTML>");
            close();}}
</SCRIPT>
</HEAD>
<BODY>
<P align="center"><BR>
<BR>
<A HREF="#" onMouseOver="openwin(0)" onMouseOut="win.close()">クリック1</A><BR>
<BR>
<BR>
<A HREF="#" onMouseOver="openwin(1)" onMouseOut="win.close()">クリック2</A><BR>
<BR>
<BR>
<A HREF="#" onMouseOver="openwin(2)" onMouseOut="win.close()">クリック3</A></P>
</BODY>
</HTML>

ファイルを置いてあるURL
http://dipper.ne.jp/~s_kaz/test.htm

よろしくお願いします。


Nobu3 [MAIL] [URL] [WriteDate : Fri May 11 15:51:22 2001]

>write("<img src=kaoid[num]>");
気分はPerlですか?
変数は引用符の外に出しましょう。

あと、function内の「var」によって宣言された変数は、そのfunction内でのみ効力を持ちます。たぶん。
なので、varをつけないか、functionの外で宣言して使いましょう。
まあ、それでもタイミングによってはエラーになるかもしれませんが。


Nobu3 [MAIL] [URL] [WriteDate : Fri May 11 16:07:25 2001]

# なんか最近文句ばっかり言ってる気がする…。

というか…。
前半部分はソースを見たら原因がわかるでしょ?
write()じゃなくwriteln()を使えばソースも改行つきで見やすくできるし。

で、後半の方は「win」という変数の事です。
var win;
をfunction外で宣言し、function内は
win =window.open("", "Miniwin","width=300,height=200");
とする。
そうすれば、「win」にそのwindowオブジェクトが保存されているので、
win.close()
で閉じる事ができるはずです。
…試してませんが。


Nobu3 [WriteDate : Fri May 11 16:09:17 2001]

あぁ、「ソース」というのは、「出力されたHTML」の意味です。
紛らわしいので訂正します。


かずし [MAIL] [URL] [WriteDate : Fri May 11 16:24:28 2001]

nobu3さん、ありがとうございます。

var win;を外に出したら、ちゃんと動作するようになりました。
write("<img src=kaoid[num]>");  の変数を引用符の外に出すのを具体的に教えて頂きたいのですが。
始めたばかりなので、簡単な事を。と思われるかも知れませんが、よろしくお願いします。

それと、perlもCGIも知識がないので分からないです。^^;


Nobu3 [MAIL] [URL] [WriteDate : Fri May 11 16:45:53 2001]

write("<img src=" + kaoid[num] + ">");
で良いです。
が、document.write()の中で演算をすると、
一部ブラウザで不具合があったりするので、
外で足し算してから出力した方がいいと思います。

色々やりたい気持ちはわかりますが、基本は覚えてください。
あとは愚痴っぽくなるので自粛します。


かずし [MAIL] [URL] [WriteDate : Fri May 11 17:05:57 2001]

nobu3さん、動作するようになりました。

まず、基本から勉強しますね。本当にありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World