• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptで質問があります。)

JavaScriptでリストを縦に並べる方法とは?

zzzzzzの回答

  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.2

> 「識別子がありません」 フレームの名前が間違っているか、あるいは変数名のうつし間違いだと思います。 > 確認ですが<>はいらないんですよね? はい。フレーム名がrightなら top.right.location.href = "http://" + url; hideMenu(act_mnu); top.right.focus(); と記述します。スペースは空けても空けなくてもかまいません。 但し、全角スペースは入れないでください。 縦に並べる、という話に移ります。 挙げられていたページの方法では、縦に並べた場合に表示間隔が開いてしまう、という問題があります。 (このページの方法は、サブメニューを静的に作成しておき、クリックで表示/非表示を切り替える、という方法をとっているため) これを回避するために、全く別の方法でスクリプトを書いてみました。 (但しNetscape4以前ではうまく動作しないと思われますが、挙げられていたページのスクリプトの方もNetscape非対応の書き方がされています) コピー&ペーストして動きを見てみてください。 使う気がおありでしたら使用法を書きますので。 <HTML> <HEAD> <SCRIPT> <!-- function __declare_Menu() { function window.Menu(parent, submenu) { this.isHidden = false; this.parentId = parent; this.parentRef = document.getElementById(parent); this.alterNode = document.createElement("DIV"); this.menuId = submenu; this.menuRef = document.getElementById(submenu); this.prevParentOnclickHandler = null; }; new Menu("", ""); Menu.prototype.alterOnclickHandler = function(newHandler) { if (this.parentRef != null) { if ((this.parentRef.onclick) && (this.prevParentOnclickHandler == null)) { this.prevParentOnclickHandler = this.parentRef.onclick; } this.parentRef.onclick = newHandler; return true; } return false; }; Menu.prototype.restoreOnclickHandler = function() { if (this.parentRef != null) { if (this.prevParentOnclickHandler != null) { this.parentRef.onclick = this.prevParentOnclickHandler; this.prevParentOnclickHandler = null; } else { this.parentRef.onclick = null; } return true; } return false; } Menu.prototype.showMenu = function() { if (this.isHidden) { this.alterNode.parentNode.replaceChild(this.menuRef, this.alterNode); this.isHidden = false; } }; Menu.prototype.hideMenu = function() { if (!this.isHidden) { this.menuRef.parentNode.replaceChild(this.alterNode, this.menuRef); this.isHidden = true; } }; Menu.prototype.toString = function() { return this.parentId + ", " + this.menuId; }; } __declare_Menu(); function __declare_MenuCollection() { function window.MenuCollection() { this.aaa = "erere"; this.current = null; this.elements = new Object(); } new MenuCollection(); MenuCollection.prototype.append = function(parent, submenu) { this.elements[parent] = new Menu(parent, submenu); this.elements[parent].parentRef.mcObject = this; this.elements[parent].alterOnclickHandler(new Function("", "this.mcObject.onclickHandler(this.id); return false;")); }; MenuCollection.prototype.remove = function(parent) { if (this.elements[parent] !== void(0)) { this.elements[parent].hideMenu(); this.elements[parent].restoreOnclickHandler(); this.elements[parent].parentRef.mcObject = null; var tmp = this.elements; delete tmp[parent]; return true; } else { return false; } }; MenuCollection.prototype.removeAll = function() { for (var menu in this.elements) { this.remove(menu); } this.elements = null; }; MenuCollection.prototype.hideAll = function() { for (var menu in this.elements) { this.elements[menu].hideMenu(); } this.current = null; }; MenuCollection.prototype.select = function(parent) { this.elements[parent].showMenu(); this.current = parent; }; MenuCollection.prototype.onclickHandler = function(id) { if (this.current == id) { this.hideAll(); } else { this.hideAll(); this.select(id); } }; } __declare_MenuCollection(); function init() { mc = new MenuCollection(); mc.append("menu1", "sub1"); mc.append("menu2", "sub2"); mc.append("menu3", "sub3"); // ********* ここにサブメニューの記述を追加してください。********** mc.hideAll(); } --> </SCRIPT> </head> <body onload="init()" onunload="mc.removeAll()"> <a id="menu1" href="#"><font size="+1">検索エンジン</font></a><br> <div id="sub1"> <ul> <li><a href="http://www.google.co.jp/">Google</a></li> <li><a href="http://www.yahoo.co.jp/">Yahoo</a></li> <li><a href="http://www.goo.ne.jp/">Goo</a></li> </ul> </div> <a id="menu2" href="#"><font size="+1">WWW</font></a><br> <div id="sub2"> <ul> <li><a href="http://www.w3.org/">W3C</a></li> </ul> </div> <a id="menu3" href="#"><font size="+1">その他</font></a><br> <div id="sub3"> <ul> <li><a href="http://www.microsoft.com/">Microsoft</a></li> <li><a href="http://java.sun.com/">Java(SUN)</a></li> </ul> </div> </body> </html>

0423a
質問者

補足

わざわざありがとうございます。 エラーもなく正常に動いています。 これを是非使いたいと思います! 使用法、よろしくお願いします。

関連するQ&A

  • ホームページビルダー11を使っているのですが・・・

    フレームを縦に2つに分割したページを作っています。 左側にメニューを表示して、右側のフレームには色々な情報をのせる・・というとこまでは出来ました。 その後なんですが、左のメニューの例えば「新着情報」をクリックしたら、右側のフレームが新着情報を表示している場所へとぶ(下がる?)ようにしたいのですが、やりかたがわかりません。 ラベルを付けることはできるのですが、メニューの「新着情報」の文字列にラベルへのリンクを貼ると、左側のフレームがそこへとんでしまいます・・・。 ガイドを見てもわからずお手上げ状態なので、どなたかわかる方がいたら教えて下さい!!お願いします!

  • リストボックスからのリンク

    新年明けましておめでとうございます。 sweetnovemberと申します。 早速質問です。 ホームページビルダーにてフレームで縦2分割したページの右側のフレームに リストボックスを設置したのですが、そこから目的のページ(フレーム縦2分割 されたページ)へ新規ウィンドウでリンクを貼りたいのですが どのようなスクリプトを記述したらよろしいのでしょうか? 今のままだと、フレームの中に更にフレームページが出来てしまい 見ずらいのです。 宜しくお願い致します。 HPの提出期限が迫っているのでお願いしますっ! (また、リストボックスとオプションメニューの違いも教えていただきたいです)

  • alphaEDIT フレームターゲット

    alphaEDITでホームページを作成しています。 フレームを縦2分割にして左側のフレームにメニュー、右側にメニュー 画面にあるメニュー項目をクリックすると右側のフレームの画面が切り替わる・・という風にしたいのですが、メニュー項目にリンクをつける時にターゲットの項目にrightがないので、自分でrightとターゲットのところに記入して見たのですが、実際にネット上で動かすと右側に独立して新しいウインドウページが飛び出てしまいます。 枠の中でパシャツと変わらないのです。 そうするためには、ターゲットの選択は、何にしたらいいでしょうか?

    • ベストアンサー
    • HTML
  • ホームページビルダーのフレームのトップページの表示がおかしい。

    ホームページビルダー11で3分割のフレームページをつくりました。トップページの上や左側のフレームからのリンクをクリックすると、右側のフレームに表示されるのですが、トップページをクリックすると右側のフレームに3分割されたトップページが表示されてしまうのです。 どうしたらよいのかお分かりになる方教えていただけますようお願いいたします。

  • フレームから場所を指定したリンクを・・・

     今私が製作しているホームページはフレームを縦に二分割しています。 左側のフレームにメニューとしてリンク用のボタンをおいて、右側のフレームにメインのページをおいてます。 今回あまりにも長いページが1ページできてしまったのでリンク用のボタン二つを用意し、長いページの中に二箇所<a name="~"></a>と付けました。 左側のリンク用のボタンにも<a href="~.html#~></a>としているのに、 実際クリックするとその長いページの頭から普通に表示されてしまいます。 フレームをつかってメインの方に場所を指定してリンクはできないのでしょうか? 読みにくい文章で申し訳ありませんがどなたか助けてください。

    • ベストアンサー
    • HTML
  • フレームで分かれたページへのリンク

    フレームで分割されていないページからフレームで分かれているページへリンクしたいのですが、そのときにリンク先によりフレームに表示されるページを指定したいのですがうまくできません・・・どうしたらいいのでしょうか? たとえば TOPページからリンクしていくと左側のフレームへメニューで右側には指定されたリンク先のページが表示するように。なのでクリックされたリンクが変わればそのページも違うページが表示されるようにです。 どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • フレームで使用したいアプレットのソースを教えて下さい

    初めまして。どうしてもやりたいアプレットがあり、「Star Select」というものですが(下記アドレス参照)、そこでは、フレームをする際のソースを公開してません。 でも、左右フレーム分割して、左側にメニューし、右側にlinkしたいのですけど、それをこのキラキラ効果の「Star Select」でやりたいのですが、どなたかどこを追加すればフレーム対応で出来るのか教えて下さいませんか? ない、一応パラメータ説明は、このアドレスで説明文がのってますけど、あまり知識がないのでどうやっても自分では出来ませんでした。 宜しくお願いします。 http://homepage1.nifty.com/7/java/StarSelect/StarSelect.html あと、この上記の「フレームサンプル」ページでは、ソースが見れなくなってますけど、どうやってやってるのかも分かる方がいらっしゃったら教えて下さい。

  • このjavaスクリプトをjavaアプレットで表現するには

    http://bunjin.com/java/hanabi_samp.html http://bunjin.com/java/hanabi.html (ソース) この花火のjava scriptを、クリックしたところで表示されるようなjavaアプレットにしたいのですが、どう記述すれば良いのでしょうか? java scriptが読めないのでわかりません…。 どなたか分かる方お願いします。

  • ホームページビルダー9 リンクエラーの件

    ホームページのTOPページをフレームで縦に2分割しています。 左列にメニューを羅列し、そこをクリックすると右側が切り替わります。 今まで問題ありませんでしたが、突然、クリックしてもリンクを貼ったページに飛ばなくなりました。 「ターゲット」を「右のページ」から「新しいウインド」に変更すると新しいウインドは開きます。 たまにデバッカーが開くのですが、直し方がよく分かりません。 どうやら、アクセス分析のためのHTMLが悪さをしているみたいなのですが、よく分かりません。 私のHPは、internet explorerで開くと、最初に左のメニューが表示されて、次に右側にコンテンツが開きます。右のコンテンツが開かない間に、左のメニューを押すと正常に動きます。 詳しい方、解決方法を教えて下さい。 よろしくお願いします。

  • JavaScriptでウィンドウを操作する方法

    "index.html"は水平方向に2分割のフレーム構成で、それぞれ「menu」「body」というnameがついています。 いま、「body」側のsrc"body1.html"にJavaScriptのソースを書いているのですが、"body1.html"中のある文字列をクリックしたら (1)新しいページ「new.html」が別ウィンドウで開く。 (2)もとの「body」側のページが"body2.html"に遷移する(フレームは解除しない)。 上記2つの処理が一度に出来るスクリプトを書きたいのです。 window.open()で(1)を書いてしまうと、(2)の分の処理がうまく動きません。 どなたか教えていただけないでしょうか??