• ベストアンサー

フレーム分割表示について

現在、フレームを上下に分割し、検索結果を表示する画面を作成しています。 上のフレームの中でキーワードとサイトを指定して検索し、下のフレームではその検索結果を表示できるようにしたいのですが何度もしたのですが成功しません。どうすれば下のフレームの中に結果を表示できるようになるでしょうか?よろしくお願いします。

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

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

>プルダウンを使ってyahooでの結果だけではなくgooやgoogleでの結果を表示 >するにどうしたらいいでしょうか 検索先を変えるのなら、スクリプトでセレクタの選択内容を取得して、フォームのactionの値を変更してあげればよいけれど、どうせスクリプトを使うのならフォームを利用するよりも、フレーム内のURLをサーチ付で直接指定してしまったほうがよいと思う。(↓で述べる、キーの問題もあるので…) 各検索サイトのトップページはUTF-8みたいだけど、その後が若干バラけているみたいなので、連続して検索するなら、サーチ部でエンコードも指定しておくほうがよさそう。 また、それぞれのkeyがサイトによって異なるので、URLとあわせてキーも取り替えてサーチ部を作成する感じ。 あと、検索キーが日本語の場合は、キーワードのエンコードも必要になります。 それで、できたURLをフレームのsrcに指定してあげればできないかな?(←未検証)

youthful97
質問者

お礼

ありがとうございます。 試してみたいと思います。

その他の回答 (3)

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

質問の意味が理解できてないけど、やりたいのってこんなこと? (frameは投稿に面倒なのでiframeで代用) URLは「ttp」→「http」に修正してください。 <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <div style="height:20%;"> <form action="ttp://search.yahoo.co.jp/search" method="get" target="frame1"> <label>SERCH KEY: <input type="text" name="p"></label> <input type="submit" value="serch"> </form> </div> <iframe width=100% height=80% name="frame1"> </frame> </body> </html>

youthful97
質問者

補足

はい。そうです。ありがとうございます。 あと、追加質問なんですが、プルダウンを使ってyahooでの結果だけではなくgooやgoogleでの結果を表示するにどうしたらいいでしょうか? 何度も質問すみません。 よろしくお願いします。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

こんなの? <html> <frameset> <frame src="A.html" name="ue"> <frame src="about:blank" name="shita"> </frameset> </html> ---------------- A.htmlの中身 -------------- <body> <form action="検索プログラム" target="top.shita"> キーワード<input type="text" name="keyword"><br> 検索<input type="submit"> </form> </body>

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

情報が不足しています。 作成したソースコードを提示しないとわかりません。 まる投げ解答をご希望されるにしても、もうちょっと仕様らしき ものをはっきりさせないと....

youthful97
質問者

補足

すみません。ソースはこのようになっています。 フレームで上下に分割はできたのですが、どうすれば下に検索結果が表示されるでしょうか? <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>search site</title> </head> <body> <script type="text/javascript"> <!-- var target = "main"; var site = new Array(); site[0] = ["Goo", "index1.html", "MT", ["from", "USR"], ["IE", "sjis"]]; site[1] = ["Google", "http://www.google.com/search", "q", ["hl", "ja"], ["ie", "Shift_JIS"]]; site[2] = ["Yahoo", "http://search.yahoo.co.jp/bin/search","p",["ei", "Shift_JIS"]]; window.onload = function() { if (!document.createElement) return; if (document.all && !window.clipboardData && !window.opera) return; // 検索サイトのリストを生成 var select = document.createElement("select"); select.id = "addlist"; for (var i = 0; i < site.length; i++) { var opt = document.createElement("option"); opt.value = i; var str = document.createTextNode(site[i][0]); opt.appendChild(str); select.appendChild(opt); } // デフォルトで選択状態にする場合はその配列番号を option[n] に指定 // select.options[3].selected = true; // 既存の検索フォームにこのドロップダウンを追加 var obj = document.forms[0]; obj.elements[obj.elements.length - 1].value = "検索"; obj.insertBefore(select, obj.elements[1]); // フォームが送信された時に selectSearch() を呼び出す obj.onsubmit = selectSearch; } function selectSearch() { var str = document.forms[0].p.value; // 入力された検索文字 var num = document.forms[0].addlist.value; // 選択されたリストの番号 // 選択された検索サイトのフォーム生成(送信先の指定) var setform = document.createElement("form"); setform.action = site[num][1]; setform.method = "GET"; // setform.target = "_blank"; // 検索結果を新しいウインドウに表示する場合に追加 // 検索文字クエリ var query = document.createElement("input"); query.type = "hidden"; query.name = site[num][2]; query.value = str; setform.appendChild(query); // 検索文字以外のクエリ if (site[num].length > 3) { for (var i = 3; i < site[num].length; i++) { var extra = document.createElement("input"); extra.type = "hidden"; extra.name = site[num][i][0]; extra.value = site[num][i][1]; setform.appendChild(extra); } } // 生成したフォームを文末に追加してそのフォームを送信 document.body.appendChild(setform); setform.submit(); // document.forms[document.forms.length - 1].submit(); return false; } function jump(){ var url = document.form1.select.options[document.form1.select.selectedIndex].value; if(url != "" ){ if(target == 'top'){ top.location.href = url; } else if(target == 'blank'){ window.open(url, 'window_name'); } else if(target != ""){ eval('parent.' + target + '.location.href = url'); } else{ location.href = url; } } } // --> </script> <br> <form action="http://search.yahoo.co.jp/bin/search" method="GET"> <input type="text" name="p" value="" size="50" maxlength=255 value="入力して(^0^)/"style="color: #808080; width: 150px;" onFocus="HideFormGuide(this);" onBlur="ShowFormGuide(this);"> <script type="text/javascript"> var GuideSentence = '入力して(^0^)/'; function ShowFormGuide(obj) { // 入力案内を表示 if( obj.value == '' ) { obj.value = GuideSentence; } } function HideFormGuide(obj) { // 入力案内を消す if( obj.value == GuideSentence ) { obj.value=''; } } </script> <input type="button" value="検索" onClick="jump()"> </form> </body> </html>

関連するQ&A

  • 3分割フレーム表示の2つのフレームをリンク後1つに

    こんにちは、お世話になります。 現在横に3分割のホームページを作成しております。 一番上のフレームにサイト名やカウンターを、 真ん中がメインのフレーム、 一番下がメニューのフレームなのですが、 メニューフレームにあるリンクをクリックした際に、 一番上と真ん中のフレームをひとつのフレームとして表示させることはできませんでしょうか? たんに一番上と真ん中のフレームに違うページを表示させる事は可能なのですが、それではフレームが3分割のままなので、一番下のフレームにあるリンクをクリックした際に、上2つのフレームがまとまりひとつになって欲しいのです。 また、フレームのことではないのですが、 サイトにアクセスする度に(自動でリロードさせその度でも構わないのですが)、 表示されている画像をランダムで切り替えることはでいないでしょうか? 当方のサーバーはCGI不可の為、javascript等でできないかなと思いまして。 説明がわかりづらくて申し訳ありません、カテもどこかわからなかったのでこちらにさせて頂きました。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • フレーム分割したページの表示で困っています。

    ホームページビルダー9でホームページを作成しています。 ページを上下に2分割して上のフレームにリンクメニューを、下のフレームにメニューのリンク先を表示するように作りました。 自分のデスクトップパソコンでは問題なく表示されているのですが、試しにB5サイズのノートパソコンで表示してみると、画面全体が表示されず、上のページのメニューボタンを表示しているところが下のフレームページで隠れてしまっているのです。 下フレームは属性で自動的にスクロールバーが出るように設定しているので問題ないのですが、上のメニューは「なし」に設定しています。 ※デザイン上、表示させたくないので。 ここからが質問です。 ページを表示させた時に、ページ全体のサイズを変えても上のメニューのフレームページが常に下のフレームページの上に来るように、つまり、上のメニューページのサイズは変わらないように固定させる方法(!?)を教えて下さい。 説明がへたで申し訳ないのですが、どうぞ宜しくお願いします。

  • submitして表示されるページをフレーム分割

    perl-CGIを使ったシステムです。 フレーム上下分割したページで、上のフレームにリストボックスにカテゴリがA・B・Cがあり、どれかを選択して実行ボタン(SUBMIT)をクリックすると、下のフレームに選択カテゴリのデータを抽出し一覧表が表示されるようにしています。ここまでは出来ているのですが、 これと全く別のページ、例えばindexページに、「カテゴリを選択して下さい。A、B、C」みたいなリンクがあって、Aをクリックすると、先に書いた、上下分割のページが表示され、下のフレームにはAの抽出一覧が表示される・・・という様にするにはどうしたらよいのでしょうか? indexでAを選択すると、Aの抽出一覧、つまり下のフレーム部分のみが表示されるページをつくることは出来ますが、それじゃ次に別のパラメータで再検索するということが出来ないので、どうしても最初に述べたフレーム上下分割したページにしたいのです。

    • ベストアンサー
    • Perl
  • フレーム間での値の受け渡し

    上下にフレーム分割された検索画面を作っているのですが、上のフレームで検索条件を入力して、その入力項目を表示したまま下のフレームに検索結果を表示するというものを作りたいのですが、値の受け渡し方法が分かりません。 parent.[上のフレーム名].document.[フォーム名].[テキストボックス名].valueを使うとできるらしいのですが、具体的な使用方法が分かりません。上のフレームで入力された値を下のフレームで変数に入れて使いたいので、parent.~が使えるかどうかもよく分かっていません。 回答よろしくお願いします。

  • htmlの別フレームにphpでの処理結果を表示

    htmlでフレームを上下に分割し、上のフレームに用意したセレクトボックスで選択された値に応じて phpとmysqlを用いてデータベースから該当するものを抽出し、 その結果を下のフレームに表示させる方法が分からなくて困ってます。 例えば、上フレームのセレクトボックスで選択した名前と同じ名前の建物をデータベースから 探し出して下フレームに検索結果(住所、電話番号など)を表示させるというような処理です。 テキストフォームに入力された文字列を別フレームに"target"を使って 表示させる方法は見つけましたが、それでは検索結果を表示させられないような気がして。。 参考になるサイトなどありますでしょうか? どなたかおわかりの方がいらっしゃいましたら、教えてもらえると非常に助かります。

    • ベストアンサー
    • PHP
  • ホームページビルダーで、フレーム内へのリンクがわかりません

    ホームページビルダーv6.5を使用していますが、 フレームを2分割して、例えば、上下に分割して 上のフレーム内の選択メニュを押すと、下のフレームに リンクの結果を表示させたいのですが、 リンクの挿入画面で、【ターゲット】をクリックすると、 作成したフレーム名が出るような設定があったと思ったのですが 忘れてしまい、作成したフレーム名をターゲット選択時に 表示させる方法がわからずに、困っております。 お手数をお掛け致しますが、お教え頂ければ幸いです よろしくお願い致します

  • 上のフレーム内のプルダウンメニューが下のフレームに隠れてしまい、困っています

    ホームページビルダーでホームページを作成しています。上下分割フレームの上のフレームで作成してあるプルダウンメニュー(レイアウト枠)を下のフレームに表示する方法を教えてください。フレーム境界線を上に上げていくと、プルダウンメニューが下のフレームに隠れてしまいます。よろしくお願いします。

  • フレームを使わず複数のファイルを表示したい

    フレームを使わずに一つの画面に複数のファイルを表示したいのですが、できるものでしょうか。 フレームの上下分割でも複数のファイル表示はできますが、上になった部分がいつまでも表示されてしまいます。 あくまでも一体画面のように、スクロールさせると上下のファイルがいっしょに動くようにしたいのです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • ホームページビルダー14です。フレーム分割して作ろうと思います。画面上

    ホームページビルダー14です。フレーム分割して作ろうと思います。画面上でいえば、上から5センチ程度でで上下分割、左から5センチ程度で左右分割、計4つのフレーム構成です。で、分割すると、各フレームにスクロールバーが表示されます。これって、ホームページを公開するときにも表示されるんでしょうか。消すことができますか。方法もざっくり教えてもらうと助かります。

  • フレームのランダム選択方法

    ご質問させていただきます。 例えば、上下2分割になっていて、上のフレームがメニュー用のフレーム、 下のフレームが更に4分割だとして、メニュー(例えばBBS)をクリックすると、 下フレームのどれかに、クリックするたびに画面が表示されるようにしたいと思っています。 何かよい方法はございませんでしょうか? おわかりになるようでしたら、ご回答お願いいたします。

専門家に質問してみよう