過去ログ NO.1096732100
□ やす。 [2004年09月30日03時06分]ウィンドウを開閉するボタンを作りたくて、以下のスクリプトを書きましたが、うまく動いてくれません。 どこがいけないのかご指摘いただけたらと思いまして、投稿します。 よろしくお願いします m(_ _)m。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<head><script> function OpenDen(){ var Den=window.open(' http://penee3.com/denkoh/denkoh.cgi?html','Den','width=480, height=50');}
function Denkoh(){ if (window.Den.closed = false) {OpenDen(); } else { window.Den.close(); } } </script> </head> <body onLoad="OpenDen();"> <button onClick="Denkoh();" height="20" width="100">電光!を開閉 </body>
□ NXer [2004年09月30日19時44分]やす。さん、NXerです。 以下の提案をよろしくご検討のほどお願いします。
当方のローカルサーバー上の電光!を単独起動させること ができました。なお、投稿時にインデントがくずれるかも しれません。{ }が対応するように編集してお読みください。 ----------------------------- <head><script>
<!-- var Den;
function OpenDen(){ Den=window.open('http://127.0.0.1/~user/denkoh/denkoh.cgi?html','Den','width=480, height=50'); }
function CloseDen(){ if (Den.closed == true){ OpenDen(); } else { window.Den.close(); } } //--!
</script> </HEAD> <BODY> <BUTTON onclick="OpenDen();" height="20" width="100">電光!開</BUTTON> <BUTTON onclick="CloseDen();" height="20" width="100">電光!閉</BUTTON> </BODY> </HTML> --------------------------------------------------- 参考文献:宮坂雅輝 『javascript handbook』 p.141
ご希望と次の点が異なるかもしれません。 1 ボタンは、開ボタンと閉ボタンを表示する 2 var Den; でopenにもcloseにも共にDenが認識できる 位置に初期設定する 3 次の式を見てください。 if (window.Den.closed = false) プレビューで出たエラーから演算子の意味の違いに気が付きました。 1) = :代入演算子 2) == :比較演算子
1.1)width=480 とは値480を代入する 他方 2.1)if (Den.closed == true) とは Den.closedの値が真である ということ。
なお、一つのボタンで開閉するにはすえぽんさんのツリー式 メニューを参考にしてください。最近インラインフレームで 表示する愚案をラウンジに提案しました。 どうしてもボタン一つで開閉したい、と切望されます場合、 そちらを参考にしてください。たぶん、応用できると思います。
□ やす。 [2004年10月01日12時54分]NXer さん、こんにちは。 # お久しぶりです(^^;。
はい。 > どうしてもボタン一つで開閉したい です(^^;。
> 1) = :代入演算子 > 2) == :比較演算子 これ、なぜか Macintosh だとエラーが出てしまうんです。 「オブジェクトではありません」って。 # でも他が原因ですよね・・・。
> インラインフレームで表示する愚案をラウンジに提案しました。 http://lounge.suepon.com/data/1095565272.html ですね。 う゛、。 近頃は以前のようなパワーがなくて、演算子などほとんど忘れかけています。
−−−−− あと、いま考えているのが cookie を使う方法です。
window が開くと、 値 = 1(onLoad で値を 1 にして、window.name = "Den" window が閉じると 値 = 0(onUnload で値を 0 にする
ウィンドウが開いているのか閉じているのか、は、(ウィンドウ名ではなくて)cookie の値で判断する、ということです。
ただ、cookie に手をつけて挫折していまったことがあって、できるかどうかがちょっと怪しいです。
自己完結のようですみません。 うまくできたら、ラウンジで発表しますですm(_ _)m。 ありがとうございました。
□ NXer [2004年10月01日19時44分]> 自己完結のようですみません。
やす。さん、「自己完結」ではないようです。電光!がさらに飛躍する 開放型(open-ended)の「どうしたらいか」という質問であったような 気がします。やす。さんが、新たに挑戦されておられるやす。さん であることが、うれしい限りです。NXerです。
>> どうしても >です(^^;。
ということで、当方の提案を少しだけ見直したところ、 一つボタンで開閉ができました。 ---------------------------------- <!-- var Den;
function OpenDen(){ Den=window.open('http://127.0.0.1/~user/denkoh/denkoh.cgi?html','Den','width=480, height=50'); } function Denkoh(){ //関数の変更 if (Den.closed == true){ //Macintosh だとエラー? ★ここがポイント★ OpenDen(); } else { window.Den.close(); } } //--!> </script> </HEAD> <BODY onload= "OpenDen();"> //イベントハンドラーonload <BUTTON onclick="Denkoh();" height="20" width="100">電光!</BUTTON> </BODY> </HTML> --------------------- やす。さんの原案↓を、やっと生かすことができました。 function Denkoh(){ <BODY onload= "OpenDen();"> <BUTTON onclick="Denkoh();" height="20" width="100">電光!</BUTTON>
ウィンドウズ系では、動作しました。ボタン一つで Den.closed == true の条件判断もクリアしています。 onload= やす。さんのお考えどおりに今回このイベントを 使いました。もちろん、マウスクリックで開いている ウィンドウは、閉じます。また、Den.closedの値が 真(閉じている時は)ウィンドウが開きました(ブラウザーで確認済み)。 以上です。
********************ここから愚論空論笑論********** 実は前回の提案は、やす。さんならメニューに複数の 電光!のウェブページを作成して、ツリー式のメニューを 開くたびごとに、異なるウィンドウで、電光!をサンプルとして みせる、などのご利用かと考えたからです。
あるいは、メニュー見出しごとに、実用的な電光!をイン ラインフレームで見せる、ということを考えました。 というのは、これから常時接続の場合、職場や友人間、 家族間などの少人数の間で、電光!が、簡単かつ即時性 のある連絡に利用される可能性が急速に増えるように 感じているからです。チャットでもなく掲示板でもない 「付箋」のような扱いが軽くて、しかし、当人と関係者には意味ある 連絡ノート代わりです。どこかで見たことのある電光!から ネットライフの定番的cgiになりそうな予感です。
今回成功した(Macでも多分成功する)やす。さんの「電光!開閉」 ボタンを「友達の電光!開閉」「趣味の車の電光!開閉」など複数の ボタンの設置すれば、かなり新しいタイプのメッセージバーの誕生で しょうか。
仮に一つの電光!でも、さらに1行追加して、そこに、チャットの ように現在オンラインの人の名前を表示すれば、チャットにはない メール、URL、画像の添付より、メッセージの交換の実用的価値は 測り知れないものがあるような気がします。一件落着にしないで 以前にまさるパワーで、更なる可能性を追求してください。 今回の投稿、どうもありがとうございました。
□ やす。 [2004年10月03日00時48分]こんばんは。 お返事ありがとうございます。
> 一つボタンで開閉ができました。 わーー! やられた! って感じです(^^;。
> var Den; 僕には、この行がポイントでした。 そうですね、変数を定義しておくだけで良かったのですね。
> //Macintosh だとエラー? ★ここがポイント★ Macintosh でも、大丈夫でした。
> ウィンドウズ系では、動作しました。 なかなか、快適ですねー。 近々、拙僕の電光!紹介ページにスクリプトを載せようと思います。
> 「友達の電光!開閉」「趣味の車の電光!開閉」など複数の > ボタンの設置 ☆! あー、これも、面白そうです。
しばらく、web制作(という程のモノでもない)から遠ざかっていたんですけど、 今回のことをきっかけに、またいろいろとやっていきます。 どうもありがとうございました。 また、よろしくお願いしますm(_ _)m。
|
|