• 締切済み

作成側:サブウィンドウの表示を1回きりにしたい。

サイトの管理・運営をしています。 今度新商品を出すので、サイトのTOPページを開いた時にアピールするために Javascript で商品の載った小さいサイズのサブウィンドウを出しています。 しかし、そのサブウィンドウを閉じてから、 サイト内を廻ってTOPに戻ってくると又開く。 もちろんそんなふうに作ったのですが、 サイトに来た時に1回だけ表示して、 サイト内にいる時は何度TOPページへ行っても開かないようにしたいのです。 そんな方法をご存知ではないでしょうか? 教えてください。

みんなの回答

noname#199778
noname#199778
回答No.3

実際にスクリプトを作ってみました。 一応、Windows Me上のIE6とNetscape7、Opera 6.05で動作確認してあります。 cookieを利用する例: <script type="text/javascript"><!-- gc1=document.cookie+"\;"; clen1=gc1.indexOf("sw"); gc2=gc1.substring(clen1-1); clen2=gc2.indexOf("="); clen3=gc2.indexOf("\;"); cdat=gc2.substring(clen2+1,clen3); function openWin(){ if (!cdat){ window.open("***.htm","_blank",""); setc="sw=1"; document.cookie=setc; } } //--></script> 一つ前のページのURI情報(referrer)を利用する例: <script type="text/javascript"><!-- prevuri=document.referrer; myuri="*******"; /* myuriには、自サイトのトップページのあるフォルダを記述してください。 「http://www.***.ne.jp/lead/index.htm」 がトップページのアドレスであれば、「www.***.ne.jp/lead」をmyuriに代入します。 */ function openWin(){ if (!prevuri.match(myuri)){ window.open("***.htm","_blank",""); } } //--></script> これらのスクリプトを記述して、後は<body onLoad="openWin()">で関数を呼び出せば、ほぼご希望通りの動作になると思います。 なお、前回のアドバイスで、来歴情報の取得の仕方を間違って紹介していました。 失礼しました。 参考になれば幸いです。

eim-yuuma
質問者

お礼

lead1976 さん 回答有難うございます(^-^) お礼が遅くなってしまい申し訳ありません。 cookieの扱い方はある程度勉強した事があるのですが、 実際に使用した事はありません。 この機会にぜひ挑戦してみようと思います。 コードも書いていただき有難うございました。ぜひ参考にさせて頂きます。 (もしかしたら、そのままコピペ使用してしまうかも(^_^;)) ありがとうございました。

noname#199778
noname#199778
回答No.2

 アイディアだけですが…  cookieを利用しても不都合がないのであれば、ポップアップウィンドウを開く処理に加えて、セッション毎のcookieに特定のパラメータを保存する仕掛けを入れておくようにすればいいのではないかと思います。  ポップアップウィンドウを開く処理の中では、cookieに保存されたパラメータがあるかどうかをチェックして、特定のパラメータがないときにのみ、ポップアップウィンドウを開き、cookieに特定のパラメータを保存する処理をさせるようにif条件分岐をすれば良いと思います。  こうすれば、特定のパラメータがcookieに保存してある限りは、ポップアップウィンドウは開かなくなります。  また、cookieについては、有効期限を設定しなければ、ブラウザを終了した時点でその情報を破棄する特性がありますから、後日改めてサイトを訪問するときにはまたポップアップウィンドウが開くでしょう。  具体的な記述などは、参考URLなどを参考にしてみて下さい。  なお、ブラウザでcookieを受け入れないようにしてある閲覧者の場合は、この仕掛けがうまく動かずに、そのページを開くたびにポップアップウィンドウが開く可能性もあります。  また、他に同ページ内でcookieを利用する仕掛けをしてある場合にはうまくないかもしれません。  他には、JavaScriptで来歴情報を取得して、直前の来歴情報が自サイトのURLでないときにだけポップアップを開かせるような仕掛けにしても良いかもしれません。 この場合、ブラウザの戻るボタンでトップに復帰した場合にはポップアップが出てしまうかもしれませんが、リンクをクリックしてトップに戻った場合はポップアップが出ないようにできます。  来歴情報については、「history.previous」で取得できると思います。  このあたりの対策ではいかがでしょうか? 見当違いでしたら、ごめんなさい。

参考URL:
http://tohoho.wakusei.ne.jp/wwwcook.htm
noname#236902
noname#236902
回答No.1

あくまで一つの方法ですが、TOPと全く同じページをもう一つ作っておいて(しかしそれにはサブウインドウが開くJavaScriptは入れておかない)、サイト内からのTOPへのリンクはそのページにする。というのはどうですか? 単純すぎますか?

eim-yuuma
質問者

お礼

Nishikino さん 回答ありがとうございます。 お礼が遅くなってしまい申し訳ありませんm(_ _)m 回答内容をみた時に「おぉ!こんな方法が!」と観点の違いに感嘆しました。 ・・しかし、サイト内のページが多く、全部のリンク先を変えるのは結構な手間とリンク切れ、 またブラウザのBackボタンでは使えないようですのでちょっと無理なようです(泣) けれど、教えてくださってありがとうございました。 覚えておいて、機会がありましたら使わせて頂きます。 ありがとうございました(^-^)

関連するQ&A

  • Javascriptでサブウィンドウを指定した位置に表示したい

    Javascript経験者です。 Javascriptでサブウィンドウを、親ウィンドウの位置より任意の座標分移動した位置に表示するプログラムを考えています。 winX = window.screenLeft + 100; winY = window.screenTop + 100; function openImg() { window.open("***.JPG","winName","scrollbars=no,resizable=no,width=200,height=160,left=winX,top=winY"); 上記にて設定したwinX、winYにはサブウィンドウを表示させたい位置座標が入っているのが確認できたのですが、実際に動かしてみると、サブウィンドウは(x,y)=(0,0)の位置に表示されてしまいます。 初歩的なミスなのかもしれませんが、どこに欠陥があるかわからなくて質問させていただきました。 よろしくお願いいたします。

  • サブウィンドウからのスタイルシートの切り替え

    お世話になります。カテゴリー違いであるかもしれませんがご容赦下さい。 javascriptについて勉強をし始めた所の初学者です。 ホームページビルダー14を使用してホームページを製作しています。 ページを開いたときに表示するサブウィンドウの切り替えボタン等で、閲覧して下さる方々にページの背景模様や文字色等を変更してもらえるようにメインウィンドウを操作できるようにしたいと考えています。背景や文字の要素ごとに切り替えられるセレクトメニューを設置したいのです。 具体的には、トップページを開いた時に http://www.sky.sannet.ne.jp/masapine/java_newwindow7.htmlのページのような形状のサブウィンドウが開くようにしたいと考えています。 背景模様(画像)の変更は、http://javascript.eweb-design.com/1302_bic.htmlのサイトに書かれているようなchBgImgで切り替える方法を取りたいと思っています。 文字色やリンク色はhttp://www.tagindex.com/javascript/page/color1.htmlのようなdocument.fgColorで切り替え、 その他の変更点等は、http://allabout.co.jp/gm/gc/23930/4/のようにスタイルシートで切り替える形を取りたく、これら3つのソースで設置したセレクトメニューをサブウィンドウに設置してメインウィンドウを切り替えるソースを教えて頂きたいと思うのです。つまり、個々の設置したいソースの内容には辿りついたのですが、それらをサブウィンドウから操作するソースが分からないという事なんです…。 背景模様の切り替えのセレクトメニューの表示には文字の代わりに画像を表示させたく、その際、セレクトメニューの各項目をマウスポイントした時に、画像表示が拡大表示される…というようなそのような事が可能であれば、そのソースも合わせてお教えいただきたく思います…。説明が下手でお恥ずかしい限りです…。 アドバイスを下さる方がいらっしゃいましたらよろしくお願い致します。

  • サブウィンドウを表示させたいのですが・・・

    こんにちわ。 ちょっとした(といっても、ワード文書1ページ分)説明をサブウィンドウで表示させたいのですが、 できません。 以下がソースです。 <メインウィンドウ> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function winOpen(winName,url,W,H){ //サブウインドウオープン var WinD11=window.open(url,winName,'scrollbars=1,width='+W+',height='+H+''); WinD11.document.close() } //--> </SCRIPT> </HEAD> <BODY> <A HREF="javascript:function voi(){};voi()" onClick="winOpen('','link1.html',400,200)"> この文字をクリックすると説明ウインドウ1が開きます </A> </BODY> 何が間違ってるのかご指導いただけないでしょうか? よろしくお願いいたします。m(__)m

  • ページを表示すると同時に複数のサブウィンドウを開く方法について

    ページを表示すると同時に複数のサブウィンドウを開く方法について、 プログラムを作成したらよいのか教えてください。 下記のプログラムは、ページを表示すると同時に1枚のサブウィンドウを開くプログラムですが、3枚ほどサブウィンドウを開きたいのです。 よろしくお願い致します。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // サブウィンドウの表示方法を指定する function openWindow1() { window.open("sample.html","OpenWindow",scrollbars=no,location=no,menubar=no,toolbar=no, status=no,directories=no,resizable=no"); } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff" onLoad="openWindow1()"> </BODY> </HTML>

  • サブウィンドウの大きさを複数設定するには?

    こんにちは。 私の知っているスクリプトだと、一つの固定の大きさでのみサブウィンドウが表示されるので、それぞれのサブウィンドウの大きさを別々に指定したいのですが、どのように記述すれば表示可能でしょうか?大きい方に合わせてしまうと、小さい方が余白が大きすぎてデザイン的にあまり綺麗ではありません。 IE4.0/NN4.0以上対応のスクリプトをお願いします。 やりたい事。 画像をロールオーバーさせ、クリックした時になおかつポップアップでサブウィンドウを表示させる。(その時表示させるページの大きさに合わせ、ウィンドウサイズも変えたい) 既にやっている事。 画像をロールオーバーさせ、固定の大きさではポップアップでサブウィンドウも表示できている。 使用しているソース。 (head部分) <SCRIPT language="JavaScript"> <!-- function openwindow(url,target) { window.open(url,target, "scrollbars=yes,toolbar=no,location=no,status=yes,menubar=no,width=650,height=700") } // --> </SCRIPT> (body部分) <a href="javascript:openwindow('mariko/profile.html','pop_up')" onMouseOver="changeImage('botanb_2.gif', 'botan2','mojij_2.gif', 'moji2')" onMouseOut="changeImage('botanp_2.gif', 'botan2','mojie_2.gif', 'moji2')"><img src="images/botanp_2.gif" width="66" height="80" name="botan2" border="0"></a> よろしくお願いします。

  • 親→子→孫サブウィンドウのフォーカスの仕方

    すいません。教えてください。 1.親ページから子サブウィンドウを開いて、そのサブウィンドウは常に手前に表示したい。 2.さらに子サブウィンドウから孫サブウィンドウを開く。子ウィンドウは残したまま。 3.今度は孫ウィンドウが常に手前に表示される。 ということをやりたいのです。 実際にfocusでやってみると、子と孫ウィンドウが競合をおこして、どちらも前に出ようと交互に上に出てフラッシュ状態となってしまいます。 どなたか解決策はありませんでしょうか?

  • Webページ表示サイズ

    新規でWebページを表示する際(サブウィンドウの表示ではありません)ウィンドウのサイズを固定し、ツールバーを表示しないように指定したいのですが、html内で記述したらよいでしょうか? それともJavaScriptの制御で行ったらいいのでしょうか?その際どのようなコードで実現可能でしょうか?アドバイスをお願い致します。

  • 外部JSでサブウィンドウを設定する場合

    サブウィンドウの設定についてご質問いたします。 親ウィンドウの中の画像をクリックしてサブウィンドウを開くと言う設定をしたいのです。 親ウィンドウにある画像は2つでそれぞれ開くサブウィンドウの大きさは異なります。 まずsample.jsを作り function subopen1(){ window.open("××.html","subwin1", "width=450,height=450,toolbar=no,scrollbars=no,left=15,top=5") } function subopen2(){ window.open("××.html","subwin2", "width=500,height=450,toolbar=no,scrollbars=no,left=15,top=5"); } と記述しました。 そして<HEAD>~</HEAD>に <script type="text/javascript" src="sample.js"></script> 続いて<BODY>~</BODY>には <A href="javascript:subopen1()"><IMG src="××1.gif" width="100" height="120" alt="Click"></A> <A href="javascript:subopen2()"><IMG src="××2.gif" width="100" height="120" alt="Click"></A> と記述したのですが 「オブジェクトを指定して下さい」とエラー表示され実行出来ません。 上記に修正箇所があったら教えて下さい。 又別な方法でも構いませんのでサブウィンドウの設定が出来れば教えて頂きたいと思います。 どうか宜しくお願い致します。ペコ↓m(_ _;)m↓ペコ

  • 縦に長い親ウィンドウの下の方からサブウィンドウを開いても、親ウィンドウの表示内容の位置が変わらないようにしたい!

    onClick="MM_openBrWindow('price.html','','scrollbars=yes,width=620,height=620')" 上記のようにprice.htmlをサブウィンドウとして開いているのですが、縦に長い親ウィンドウページの下の方にサブウィンドウを開くボタンを置くとクリックしたときに、親ウィンドウページの表示部分が下の方から一気に一番上になってしまいます。(Windows XP SP2, IE 6.0) 親ウィンドウはサブウィンドウを開くときに見ていたままにしておきたいのですが、どうしたらよいでしょうか? とほほさんのページなど読みましたが、わかりませんで、大変困っております。 (javascriptもDreamWeaverMX2004のビヘイビアで設定しているような者なので・・・) どなたが教えていただけるとありがたいです。 なにとぞよろしくお願いいたします。

  • ホームページの作成

    ドロップシッピングのサイトを立ち上げたいのですが、下記のURLのようなホームページのデザインはどうやって作成したらいいのでしょうか?HTMLは少々理解できて、バナーなどもデザインできるのですが、トップページのメニュー部分などはどうやって作成したらいいのか?分かりません。また、商品ページや、ドロップシッピング運営会社への商品ページの埋め込みなど。。。その辺はどういうふうにすればいいのでしょうか? http://www.brand-index.jp/ テンプレートなどは無料であるのでしょうか?もしあればサイトを教えてほしいです。

専門家に質問してみよう