JavaScript で ポップアップ させたい

[上に] [前に] [次に]
ひろぼー [HomePage] 1998/09/10(木) 15:50:51
JavaScriptはド素人です。

細かい文章が沢山あって表が大きくなりすぎるので、
表中にはリンクだけ張ってクリックで別窓表示したかったのです。
 <a href="msg12345.htm" target="msg">☆</a>

でも、小文それぞれに html ファイルを作るのはとても面倒なので、
JavaScript で表示させれば、一つのソースに組み込めるのでは、
と考えました。つまり、
 <a href="#" onclick=openwin("表示させたい小文")>☆</a>

さて、openwin()をどう作るかが問題なんですが、とりあえず、

<script language="JavaScript"><!--
function openwin(message) {
 w = open("msg.htm", "msg", "width=400,height=200,toolbar=no,scrollbars=yes,resizable=yes");
 w.focus();
 w.document.open();
 w.document.write("<font size=2>");
 w.document.write(message);
 w.document.write("</font>");
 w.document.close();
}
// --></script>

なんてやってみました。
でも、IE では時々エラー、NN では2度目に必ずエラーです。

方針が間違ってるでしょうか?
URL覧に、テスト html を置いときました。
ご指導願えますか?

みんこ [HomePage] 1998/09/10(木) 18:09:05
アラートで出しちゃだめですか?

<A HREF="#" onClick="alert('メッセージ')";return true">

これでリンク無しでメッセージだけ出ますけど。改行タグが効かないので(一行30字)スペースとかで
調節すれば複数行の文でも書けますよ。

もしくは、文章が多ければ
<script language="JavaScript"><!--
function openwin(n){
window.open("msg"+n+".html","msg","width=400,height=200,toolbar=no,scrollbars=yes,resizable=yes");
}
//-->
</script>
として、本文に
<A HREF="#" onClick="openwin(1)";return true">リンク1</a>
<A HREF="#" onClick="openwin(2)";return true">リンク2</a>...と
入れるとか。これだと確かに一つづつファイル作らないといけませんが
本文のみ書き換えればいいのでそんなに手間じゃないと思います。
(ファイル名はmsg1.html、msg2.html...となりますこの場合)

document.writeを使って長々と書き込む方法は知りません。すみません。

まる高 [E-Mail] [HomePage] 1998/09/11(金) 09:16:18
alert文における改行は、\nで行えます。

まる高 [E-Mail] [HomePage] 1998/09/11(金) 09:22:37
(続)小生のホームページの「勝田マラソン・コースレポート」のコーナーに
行って頂き、ソースを開いて見てください。ひろぼーさんのやりたい
ことを少なからず、実現していますので。

まる高 1998/09/11(金) 09:38:15
(続続)すみません、一気に書けば良かったのですが。
w = open("msg.htm", "msg", "width=400,height=200,toolbar=no,scrollbars=yes,resizable=yes");
を下のように書き換えればOKだと思います。
w = window.open("", "msg", "width=400,height=200,toolbar=no,scrollbars=yes,resizable=yes");

みんこ [HomePage] 1998/09/11(金) 10:18:02
>alert文における改行は、\nで行えます。

横レスですが、なるほどー。そうなんですか。
うちのソース直してみます。

それはそうと、上のソース、やってみましたが(Mac)
NN4.0は動きますがIE3.0だと動きませんね。

飯塚 [E-Mail] [HomePage] 1998/09/12(土) 01:26:12
<script language="JavaScript"><!--
// これで大丈夫だと思います。
cnt = "";
function openwin(message) {
cnt = cnt + "a";
w = open("", cnt, "width=400,height=200,toolbar=no,scrollbars=yes,resizable=yes");
w.focus(); // IE3ではエラーになる
w.document.open();
w.document.write("<font size=2>");
w.document.write(message);
w.document.write("</font>");
w.document.close();
}
//--></script>

ひろぼー 1998/09/12(土) 08:49:14
[[解決]]
みなさんありがとうございます。

結果的には、まる高さんがおっしゃったように、
  w = open("msg.htm", "msg",………

  w = window.open("", "msg",………
に書き換えることで、すべて解決しました。
これがなぜなのか現象は全く理解してないのですが(^^;;

でもって、まる高さんのページを参考にして、
  <A HREF="#" onClick=openwin("………")>

  <A HREF=JavaScript:openwin("………")>
にしたら、履歴がおかしくなる問題まで解決しました。

みんこさん提案の alert() や confirm() は最初に試したのですが、
文章をクリップボードにコピーができないのが致命的で、
確認ボタンを押す面倒もあり、今回の冒険をしてみました。

みんこさんや飯塚さんの、w.focus() が IE3 で動かない件、
情報とても助かります。今回は特定小数向けのページなので
IE4とNN4で動けば充分ですが、今後のため心に止めておきます。

本当に感謝です。ありがとうございました。

ひろぼー [HomePage] 1998/09/12(土) 09:08:07
蛇足ですが、修正後のサンプルを置いてURL覧に書きましたので、
もし興味をお持ちの方はご覧下さい。

[上に] [前に] [次に]