タブでcookieを使ったのですが…

このQ&Aのポイント
  • タブでcookieを使用したボックスを作成する際に問題が発生しました
  • タブ切り替えを安定して利用する方法や、cgiでの問題について知りたいです
  • カテゴリが技術者向けですが、初心者の私でも理解できる回答をお願いします
回答を見る
  • ベストアンサー

タブでcookieを使ったのですが…

Javascriptを使ってタブ付きのボックスを作ったのですが、少々問題があり解決法が見つからないのでここに投稿させていただきます。 カテゴリが[技術者向]となっていますが私は初心者です...。 まずタブで表示を切り替えるUIというのはたとえば以下のサイトにあるようなものですが、問題が起きるのは私が独学で作成したものです。 http://archiva.jp/test/html/tab-menu.html また、以下のような機能があります。 ・タブ以外の部分を非表示にできる(その状態をcookieで記憶しておく) ・表示しているタブをcookieで記憶しておく ・タブにマウスポインタを乗せるとタブの背景画像が変わる(ロールオーバー) ・表示しているタブの背景画像を変える ・ウィンドウの幅に合わせて自在にサイズを変化させる cgiの掲示板にタブ切り替えを設置したのですが、cookieがうまく働いてくれないらしく表示/非表示の操作ができないことがあります... その他にも、ブラウザによって(ウィンドウ幅を縮めると)タブメニューの中の文字がはみ出してしまったり、表示しているタブを記憶できないなどの問題が起きます。 以下のURLに全く同じタブ切り替えを設置しました。 http://www7a.biglobe.ne.jp/~g-s-b/tabs/tabs.html なぜcgiに設置すると問題が起きるのか、全くわかりません... ですが掲示板が複数のcgiで構成されており、タブを含む、css等の共通部分を別に読み込んでいるので、タブを閉じたままにするままにはクッキーを使う以外の方法を思いつきません。 このようなタブ切り替えを安定して、多くのブラウザで利用できるようにするにはどのようにすればよいでしょうか。 また、なぜcgiだと問題(cookieが保存されているのに動作しない等)が起きるのでしょうか。 長くなってしまいましたが、どなたかご回答をよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 15mm
  • ベストアンサー率65% (65/100)
回答No.1

>カテゴリが[技術者向]となっていますが私は初心者です...。 そんな心配をしていたら始まりませんよ(笑) さて、cookieの件の動作確認はIE8で行いました。 cgiにすると、というのが確認できませんでしたが、サンプルのほうは動作しました。 まず確認してほしいことは、問題が発生したことを確認した状態でブラウザがスクリプトエラーを訴えていないか確認していただきたいです。 tabs.html最後のほう 4531(".tip2").each( function(link) { new Tooltip(link, {backgroundColor: "#000", borderColor: "#fff", textColor: "#FFF"}); }); なんかは特に問題がありますね。 4531というのはNumberであってFunctionではありませんから関数展開しているのは・・・見ていて不思議です。 Tooltipというのも宣言されていませんし。(大文字小文字の区別はしっかり) >cookieがうまく働いてくれないらしく cookieが保存されているか、読み出しは行えているかのチェックは行いましたか? alert(unescape(document.cookie)); で期待通りの文字が入っているか、cgi側の出力で競合を起こしていないかも確認してください。 >ブラウザによって ブラウザごとに設定でcookieがオフになっていたり、javascriptがオフになっていたりというのは大丈夫ですよね? >タブメニューの中の文字がはみ出してしまったり 文字が収まるスペースが無いほど画面を縮小したのであれば仕方ありません。 ブラウザごとに表示崩れを起こすのは今後も覚悟しておいたほうがいいほど頻繁にあることですが、 「はみ出す」の程度によってはHTMLの文法的に間違っているとか、あなたのほうに原因があることもあります。 文法をチェックするツールはいろいろあるので、試してみてください。 >なぜcgiだと問題 cgiのほうでもcookieをいじることができるから cgiの設置が別ディレクトリで、*.jsファイルの読み込み指定を間違っている とか、原因は断定できませんが、スプリプとエラーから直していくのがいいでしょう。 どうでもいいですが、ツールチップが画面外に表示されて、読めないから意味が無い、というのは・・・

z1rcom
質問者

お礼

ご回答ありがとうございます。 Tooltipのスクリプトですが、確かに数字というのはおかしいですよね... Tooltipに関しては私が作ったものではないので、別のものに変更することにします。 どうやらcgiで動作しないのは、cgiがcookieを出力しているのが原因のようです。ブラウザの設定は全て確認しました。 まずはスクリプトエラーから修正したいと思います。 はみ出しを防ぐために、CSSで td .class1 {overflow:hidden;} というようにtdに対して指定したのですが、なぜかはみ出てしまいます。 tdの内容がはみ出すことを防ぐことは出来ないでしょうか...?

関連するQ&A

  • jQueryのui.tabのcookieについて

    jQueryのui.tabのcookieについて ブログのサイドバーにタブメニューを設置して、ユーザーがタブをクリックするとそのタブを記憶して同じブログ内の別のページへ移動してもそのタブの内容が表示されるというものを作ろうと思い、 jQueryのui.tabで作ったタブにjquery.cookieを利用してクッキーを保存するようにしたんですが… $('#container1').tabs({event:'click',cookie: { expires: 30 },cache:true}); タブをクリックして同じブログ内の別のページへ移動するとタブが初期状態に戻ってしまいます。 どなたか改善策を知っているかたは教えてもらえないでしょうか??よろしくお願いします!!

  • Firefox4でタブの幅が変わってくれない

    Firefox4でタブの幅を狭くして、たくさんのタブが同時に表示できるようにしたいのですが、 アドレスバーにabout:configと入力して、「browser.tabs.tabClipWidth」の数値を140から40に変更したのですが、タブの幅が変わってくれません。ブラウザを再起動しても同じです。 どうしたら変更できるのか教えてください。

  • cookieを設定

    Webブラウザが情報を保存する機能としてcookieがありますが、 JavaScriptでcookieを設定する方法と、 CGIがHTTPヘッダに「Set-Cookie」を含めてcookieを設定する方法が あるかと思います。 JavaScriptとCGIで設定する2つの方法のそれぞれのメリットは なんでしょうか? つまり、 JavaScriptを利用してcookieを設定する場合、Webサーバがcookieに 対応していなくても問題ないという利点はあることは分かりましたが、 他にはないのでしょうか? CGIでHTTPヘッダにcookieを保存しておいた場合、うれしいことは 何でしょうか?

  • cookieの設定について

    yahooのメーリングリストに登録をしました。一度ログアウトし、再度ログインすると「ユーザー登録されていない」エラーになってしまいます。yahooに問い合わせたところ「ブラウザ上で「cookie」を許可するように」言われましたのでその設定をしたのですが一向に改善されません。 再度問い合わせたところ「ブラウザのベンダーへ確認して」との 回答でした。MicroSoftに問い合わせるのも回りくどいのでここでお聞きしたいと思います。 InternetExplorer6.0上でcookieを許可する方法を教えてください。 OSはWindowsXP HomeEditionです。 現状の設定は  IE6メニュー「ツール」「インターネットオプション」「プライバシー(タブ)」「詳細設定」で  ・cookieの上書き許可にチェック  ・ファーストパーティのcookie : 受け入れる  ・サードパーティのcookie : 受け入れる にしてあります。 他の部分で何か必要な設定があるのでしょうか? なお、IE6メニュー「表示」「プライバシーレポート」を開くとegroups.co.jp/login.cgiのサイトは「受諾済み」となります。 よろしくお願いします。

  • cookieが有効になりません

    Windows7のIE9でcookieが有効ではないとメッセージが出て、gmailやyahooなどにログインできなくなってしまいました。 gmailでは「ブラウザの Cookie がオフになっています。Cookie をオンにしてください。」というエラー メッセージが表示される場合は、次の手順を試してください。 Googleでは以下のメッセージがでます。 1.Internet Explorer を起動して、ブラウザ ウィンドウの上部にある [ツール] をクリックします。  2.[インターネット オプション] をクリックして、ダイアログ ボックスの上部にある [コンテンツ] タブをクリックします。[コンテンツ アドバイザ] が有効になっている場合は、無効にします。 3.[OK] をクリックします。 次に、ブラウザのキャッシュをクリアします。 Internet Explorer のキャッシュをクリアする方法は次のとおりです。 上の方法でログインできない場合は、URL を https://mail.google.com に変更し、暗号化されたページでログインしてみてください。  その通りにしましたがログインできません。 他にもブラウザーをリセットしたりして何度か試しましたが、ログインできないままです。 cookieやJavaが有効かどうかを判別してくれるサイトではどちらも有効と表示されます。 Operaで試してみたところ、Googleにはログインできました。 これはIEの不調なのでしょうか。 どうしたら今まで通りになるでしょうか。 どうか皆様の知恵をお貸しください。よろしくお願いいたします。

  • Cookieが保存できない。

    CGIをつかってクッキーを保存しようと試みています。 以下のように記述しておりますがなぜかクッキーファイルが生成されません。 print "Content-type: text/html\n"; print "Set-Cookie: NAME=test\n"; print "\n"; print "テスト"; 何か問題がるのでしょうか?もちろんブラウザ上ではクッキーは有効にしていますし、ほかの他クッキーファイルは存在します。 ブラウザはIE6.0です どなたかご教授お願いします。

    • ベストアンサー
    • CGI
  • Firefoxを23.0.1にしたらタブ幅が、、、

    これまでアドインのStylishを使ってタブ幅を75に統一していました。 /* タブの高さ、幅、文字サイズの調整 */ .tabbrowser-tabs tab{ height : 23px ! important; width : 75px ! important; font-size : 12px ! important; } 以上が使っていた設定です。 しかしFirefoxを23.0.1にアップデートしたところタブの幅が大きくなっていました。 いろいろ試したのですがタブのwidthを100px以上にすると変化が見えるのですが、100px以下だと100pxのまま変化しないことが分かりました。 100px以下を設定しても意味がなくなっているようなのですが、どこかに制限をかけている設定があるのでしょうか。 about:configも試してみたのですが解りませんでした。 この状態を解決する方法をご存じの方、教えてください。 何卒よろしくお願い致します。  ※Stylish以外の方法の場合、タブの幅、高さ、フォントサイズを決めることが出来る方法でお願いします。 TabMixPlusは一時使っていましたが、タブ幅しか調整できなかったので、今の方法にしました。

  • Wordwをタブ切替えしたいのですが

     最近のエディタやブラウザは、タブ切り替え機能を載せていますね。それと同じようにWordの複数の文書をタブ切り替えできるようにするソフトなんてないでしょうか? ウィンドウで複数の文書を表示させていることは可能ですが、1つ1つの文書の表示枠が小さいので、タブ切り替えが出来ると嬉しいのですが。  あくまでも、テキストエディタではなく、Word文書そのものをタブ切替え出来るプラグインみたいなものをお願いします。

  • フレームからcookieを呼び出せない・・・?

    自分のホームページで、左にフレーム、右にBBSのCGIを表示の状態になったとき、一回書き込みをしてもcookieが保存されないようです。 右クリック→新しいウィンドウで開く、なら問題なく保存できるようです。 原因として思い当たるのは、フレームページとCGIのサーバが異なることぐらいです。 フレームページを表示させたまま書き込むときに、cookieを保存することはできないでしょうか?

    • ベストアンサー
    • HTML
  • Cookieを用いてのセッション管理

    以前も問い合わせさせていただいた件なのですが、 未だ解決していないので、再掲させていただきます。 やりたいことは、 個人認証のページを作り、ログオフ後、ブラウザの戻るボタンを押しても、 ログイン中となるのを避けたい。 以下のような感じで、cookieを使って実現しようとしているのですが、 ログオフ時にcookieの削除は、うまくいったのですが、 ブラウザの戻るボタンでログイン中のページに戻ると、 $ENV{'HTTP_COOKIE'}の中身を見ると、実際にはCookieは削除されているにも関わらず、 Cookieの情報がよみこまれているため、ログイン中となってしまいます。 何か基本的なやり方を間違っているような気がします。 どなたかご教授願います。 ↓a1.cgi(ログイン画面)--------------  : (ID、パスワード認証後) #Cookie書き込み print "Content-type: text/html\n"; print "Set-Cookie: NAME=aaa; expires=Tue, 1-Jan-2030 00:00:00 GMT;\n"; print "\n";  : ↑a1.cgi(ログイン画面)-------------- ↓a2.cgi(ログイン中)--------------  : #Cookie読み込み $cookie01 = "$ENV{'HTTP_COOKIE'}\n";  : <HEAD> <!-- キャッシュクリア --> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">  : </HEAD>  : ↑a2.cgi(ログイン中)-------------- ↓a3.cgi(ログオフ)--------------  : #cookie削除。 print "Content-type: text/html\n"; print "Set-Cookie: NAME=aaa; expires=Fri, 31-Dec-1999 23:59:59 GMT;\n"; print "\n";  : </HEAD>  : ↑a3.cgi(ログオフ)-------------- ※a1.cgi、a2.cgi、a3.cgiは同じディレクトリです。 よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう