• 締切済み

JavaScriptのクッキーによるリダイレクト

あるホームページを開いて、リンクをクリックした際に、そのリンク先をクッキーに保存して次にそのページを訪れた場合は、そのページを表示しないでそのリンク先へリダイレクトにはどうしたらいいでしょうか? これがソースです。 <html> <body> <ul> <li><a href="​http://www.***.**/ja.html">​日本語ページ</a></li> <li><a href="​http://www.***.**/en.html">​英語ページ</a></li> </ul> <body> </html> リダイレクト先が1つならいいのですが、2回目以降に2つのサイトのどちらかにリダイレクトさせる方法がよくわかりません。何かいい方法はないですか?

みんなの回答

回答No.2

こういうのはどう? りんくさきは、ふくすうあるけど、じゅんぐりに1つだけひょうじしてるじょ! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>test</title> <ul id="link_name_0" class="wlink"> <li><a href="test0.html">日本語ページ</a></li> <li><a href="test1.html">英語ページ</a></li> <li><a href="test2.html">フランス語ページ</a></li> <li><a href="test3.html">チェンバル語ページ</a></li> </ul> <ul id="link_name_1" class="wlink"> <li><a href="test0.html">青森県のページ</a></li> <li><a href="test1.html">北海道のページ</a></li> </ul> <script type="text/javascript"> //@cc_on var reg = /\bwlink\b/i; function initWlink () { var tag = document.getElementsByTagName('ul'), o, cnt; for (cnt = 0; o = tag[cnt++]; ) if ( reg.test( o.className ) ) if (o.id) displayChild(o, getCookie(o.id) - 0); } document./*@if (@_jscript)attachEvent('on'+ @else@*/addEventListener(/*@end@*/ 'click', function (evt) { var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/, ul; if ('A' === e.nodeName) { ul = getParent(e, 'nodeName', 'UL'); if (reg.test(ul.className)) setCookie(ul.id, brothersCounter(getParent(e, 'nodeName', 'LI')), 1); } }, false); function brothersCounter (e) { var n = 1, o = e; while (o = o.previousSibling) if(e.nodeName == o.nodeName) n++; return n; } function getParent (node, type, val) { return node ? (val == node[type]) ? node: arguments.callee(node.parentNode, type, val): null; } function getCookie (name) { name = encodeURIComponent(name).replace(/([.*()])/g, '\\$1'); var value = document.cookie.match(RegExp(name + '\\s*=\\s*(.*?)(?:[\\s;,]|$)')); return value ? decodeURIComponent(value[1]) : ''; } function setCookie (name, value, day, path, domain) { return document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + '; ' + 'expires=' + new Date( (new Date) - 86400000 * -day ).toUTCString() + '; ' + (path ? 'path=' + encodeURI(path) + '; ': '') + (domain ? 'domain=' + encodeURI (domain) + '; ': ''); } function displayChild ( parent, no ) { var i = 0, cnt = 0, objs = parent.childNodes, o, s; if (objs.length <= no) no = 0; while (o = objs[i++]) if (o.nodeType === 1) o.style.display = (cnt++ == no) ? 'list-item': 'none'; } initWlink(); </script> これとは、まったくちがうことなのだけど。 教えてgooで、みると、「このカテゴリで人気のQ&A」のいちらんに 「1つのformで複数のactionを実行できますか?」が、とっぷで くいこんでくるのはなぜ?とおもうのは、ばぶぅ~だけ? ということを、かいとうするたびに、つけている。^^; というか、さいきん、これをかきたいがために、かいとうしている?

masaki85
質問者

お礼

ありがとうございます。いろいろと参考にさせていただきました。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

>リダイレクト先が1つならいいのですが、2回目以降に2つのサイトの >どちらかにリダイレクトさせる方法がよくわかりません 2回目以降は、強制的にジャンプさせるのでしょうから、クッキーに残るのは片方でしかありません。 (普通の記録方法で行えば後で記録した方が上書きされるけど、ユーザ  がリンクをクリックすることがないので、上書きされることが起こらない) それなので、『クッキーを読んで記録があればそのリンク先にジャンプ、なければ何もしない。』という考え方で十分では? ジャンプするには location.href を利用すればよろしいかと。 クッキーの保存、読出しは↓あたりを参考にどうぞ。 http://ash.jp/~hasimoto/zakki/new_jsck.htm http://www016.upp.so-net.ne.jp/masuda2/js/js011.html

masaki85
質問者

お礼

ありがとうございます。いろいろと参考にさせていただきました。

関連するQ&A

  • PHPのクッキーによるリダイレクト

    あるホームページを開いて、リンクをクリックした際に、そのリンク先をクッキーに保存して次にそのページを訪れた場合は、そのページを表示しないでそのリンク先へリダイレクトにはどうしたらいいでしょうか?

    • 締切済み
    • PHP
  • リンクに関する制御について【XHTML&CSS&JavaScript】

    【XHTML&CSS】 リンク制御について Webサイトにおいて、現在リンクの制御の方法をどうしたらいいのかわかりません。(JavaScriptについては初心者です。) XHTMLのソース上においてリンクを以下のように記述し、 <ul> <li><a href="../link/test1.html">テスト1</a></li> <li><a href="../link/test2.html">テスト2</a></li> <li><a href="../link/test3.html">テスト3</a></li> <li><a href="../link/test4.html">テスト4</a></li> </ul> 上記のようにリストを作成するが、テスト1からテスト3まではリンク先のファイルが存在するが、テスト4についてはファイルが存在しない。 この状態では、 通常であればテスト4は"404 Not Found「ページが存在しません。」などのエラーが表示されます。 これをCSSまたは、JavaScriptなどで制御して、 リンク先のファイル(test4.html)を探しに行って存在しない場合、 リンク先へ遷移させないようにはするにはどうしたら実現可能でしょうか? よろしくお願いします。

  • この2つのソースを50ページに配置したいのですが?

    (1)head内 ----------- <link href="css/navi.css " rel="stylesheet" type="text/css"> ---------- (2)body内 ----------- <div class="nv"> <ul> <li><a href="purchase.shtml">1</a></li> <li><a href="torihiki.shtml">2</a></li> </ul></div> ------------ この(1)(2)のソースを50枚のページに入力したいのですが、少しでも速い方法ないでしょうか?

  • cssとjavascriptでプルダウンメニュー

    お世話になります。 いろいろとサンプルを試し、ハマっています・・・。どなたか助けてください! 今下記のようなソースでメニューを作っています。 <ul id="globalnavi"> <li id="a"><a href="#">a</a></li> <li id="b"><a href="#">b</a> <ul id="subnav"> <li><a href="#">b-1</a></li> <li><a href="#">b-2</a></li> <li><a href="#">b-3</a></li> </ul> </li> <li id="c"><a href="#">c</a></li> </ul> このソースで、親階層のメニューは画像、submenuはテキストで表現したいのですが、FFやIE7、IE6、safariに使える方法でなにか簡単なものありましたら、教えていただきたいです。 よろしくお願い致します!

  • <ul>から</ul>の間をjavascriptで

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <div id="images"> <ul> <li style="width: 354px"><a href="javascript:;">ああ</a></li> <li style="width: 354px"><a href="javascript:;">いい</a></li> <li style="width: 354px"><a href="javascript:;">うう</a></li> <li style="width: 354px"><a href="javascript:;">ええ</a></li> </ul> </div> </body> </html> の<ul>から</ul>の間の<li></li>を1個にしたり5個にしたり、<ul>から</ul>を無くしたり javascriptで動的に変更するスプリクトが知りたいです。

  • リンクの色を保持

    iframeに表示されたページが、main.htmlのどのリンクを表示しているか分かるよう、main.htmlのページが表示された時に、リンク1の背景に色をつけたいと思っています。そして、リンク2がクリックされた時は、リンク2をクリックしていることが分かるよう、リンク1の背景の色をなくしリンク2の背景に色をつけたいと思っています。 つまり、 (1)main.htmlのページが表示された時に、リンク1の背景に色をつける (2)リンク2がクリックされた時は、リンク1の背景の色をなくしリンク2の背景に色をつける (3)リンク3がクリックされた時は、リンク2の背景の色をなくしリンク3の背景に色をつける をしたいと思っています。どのようにすればいいでしょうか?よろしくお願いします。 <--test.html--> <html> <head> <Meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <Title>テスト</Title> </Head> <body> <ul> <li><a href="main.html">main</a></li> </ul> </body> </html> <--/a.html--> <Html Lang="ja"> <Head> <Meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <Title>テスト</Title> </Head> <Body> <iframe src="http://yahoo.co.jp" name="test"></iframe> <ul> <li><a href="http://yahoo.co.jp" target="test">リンク1</a></li> <li><a href="http://www.goo.ne.jp/" target="test">リンク2</a></li> <li><a href="http://www.biglobe.ne.jp/" target="test">リンク3</a></li> </ul> </Body> </Html>

  • マウスオーバーをjavascriptで実現する方法

    添付画像のようにマウスオーバーすることで、文字色や背景色や画像(文字の後ろの■がダミー画像となります)を変更したいと思いました。 下記のソースでGoogle Chromeでは動作したのですが、IE6では動作しませんでした。 afterを使用しているのが原因と思い、こういう場合はjavascriptを使用して実現するのかなと思ったのですが、どうすればできるかわからなかったのでアドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 なお、ここに出てくる名前(ライフなど)は何文字になろうが、そのすぐ後ろに画像を表示させたいと思っています。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>title</title> <style type="text/css"> <!-- ul.category li{ list-style:none; line-heigh:2em; margin:0.2em; } ul.category li a{ background-color:white; color:blue; } ul.category li a:focus, ul.category li a:hover{ background-color:gray; color:red; } ul.category li a:after{ content:url(./images/arr_blue.gif); } ul.category li a:focus:after, ul.category li a:hover:after{ content:url(./images/arr_red.gif); } --> </style> </head> <body> <ul class="category"> <li><a href="http://oshiete.goo.ne.jp/category/214/">ライフ</a></li> <li><a href="http://oshiete.goo.ne.jp/category/207/">デジタルライフ</a></li> <li><a href="http://oshiete.goo.ne.jp/category/212/">趣味</a></li> </ul> </body> </html> 以上、宜しくお願いします。

  • リンクがうまくできません。

    リンクがうまくできません。 ホームページのテンプレートをダウンロードし、メモ帳で編集しているところです。 ダウンロードしたものの中にindex.html(トップページ)とpage1.html(リンク先)が入っています。 トップページにリンクを他にも作りたいので、page2,page3,・・とつくったのですが、 <UL id="menu"> <LI><A href="page1.html">about</A></LI> <LI><A href="page2.html">photo</A></LI> <LI><A href="page3.html">blog</A></LI> <LI><A href="page4.html">link</A></LI> <LI><A href="page5.html">mail</A></LI> </UL> こうした場合に、page1.htmlはちゃんとリンクできるのですが、それ以外のリンクが出来ません。 何か間違えているんでしょうか? それとも、他に何かしなくてはならないことがあるんでしょうか? 初歩的な質問かもしれませんが、よろしくお願いします。

  • クリックで表示、非表示するメガメニュー

    クリックで表示して再度クリックすると非表示になるメガメニューを作ろうと思ってます。 下記のページを参考にjQueryでマウスオーバーによるメガメニューは作成しました。 http://www.skuare.net/test/jmegadropdown.html ただ、jQueryどころかjavascriptも昔少しやった程度しか知識がありませんので、ソースはほぼ上記のページと同じです。 これをクリックでメニュー表示して、再クリックで非表示にするにはどうしたらよいでしょうか? 具体的にはマイクロソフトのページの上にあるようなメニューです。 http://www.microsoft.com/ja-jp/default.aspx 自分の今の知識でjavascriptを使って書いたコードは下記のとおりです。 このように書いていけば出来るとは思うのですが、もっと効率よく出来る方法はあるでしょうか? よろしくお願いします。 function test1() { $("#topnav li .products1 .sub").toggle(); $("#topnav li .sale1 .sub").css("display", "none"); } function test2() { $("#topnav li .products1 .sub").css("display", "none"); $("#topnav li .sale1 .sub").toggle(); } <ul id="topnav"> <li> <a href="#" class="products" onclick="test1()">Products</a> <div class="products1"> <div style="opacity: 0; display: none; width: 600px;" class="sub"> <ul> <li><h2><a href="#">menu1</a></h2></li> <li><a href="#">Link1</a></li> <li><a href="#">Link2</a></li> </ul> <ul> <li><h2><a href="#">menu2</a></h2></li> <li><a href="#">Link1</a></li> <li><a href="#">Link2</a></li> </ul> </div> </div> </li> <li> <a href="#" class="sale" onclick="test2()">Sale</a> <div class="sale1"> <div style="opacity: 0; display: none; width: 450px;" class="sub"> <ul> <li><h2><a href="#">menu</a></h2></li> <li><a href="#">Link - 1</a></li> <li><a href="#">Link - 2</a></li> <li><a href="#">Link - 3</a></li> <li><a href="#">Link - 4</a></li> </ul> </div> </div> </li>

  • blogのエントリーをホームページに表示させる方法

    Movable Typeのエントリーのタイトルを他のサイトに自動的に表示させ、リンクさせる方法を教えて頂きたいのですが・・・ そのようなページのソースを見ると <ul class=achive> <li><a href="http://・・・・・・">●●●●</a></li> となっているのですが。 宜しくお願いいたします。

    • ベストアンサー
    • CSS