重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

55歳の初心者です。
Googleの検索窓(下記HTML)をFlashオブジェクト内に設置したく、苦戦しております。

<form method=get action="http://www.google.co.jp/search" method=get target="_blank">
<input type=text name=q size=31 maxlength=255 value="">
<input type=hidden name=ie value=Shift_JIS>
<input type=hidden name=oe value=Shift_JIS>
<input type=hidden name=hl value="ja">
<input type=submit name=btnG value="Google 検索">
</form>

Flash 8
1. テキスト入力フィールドを作り、インスタンス名 q_txt
2. searchボタンを作り、インスタンス名 send_btn
3. ボタンに下記アクションを記述

on (release) {
System.useCodepage = true;
q = q_txt.text;
ie = Shift_JIS;
oe = Shift_JIS;
hl = "ja";
this._parent.getURL("http://www.google.co.jp/search", "_blank", "get");
}

パブリッシュ後、サーバーにアップ。
ページを表示させ、テキストフィールドにテキストを入力、searchボタンを押すも、
http://www.google.co.jp/webhp が表示され、検索が機能しない。
IE も NN も同様。"get" を "post" にしても同様。

どのようにすれば検索が機能しますでしょうか、よろしくご教授ください。

A 回答 (1件)

例えば,


Google で「教えて」を検索したとします。
すると,URL欄は次のようになります。
  ↓↓↓
http://www.google.co.jp/search?hl=ja&q=%E6%95%99%E3%81%88%E3%81%A6&lr=
(※自動リンクがかからないように頭の h と w を全角にしてます)
(実際は http://www.google.co.jp/search?hl=ja&q=%E6%95%99 … )

最後の,&lr= は消しても大丈夫そうです。
だから,

http://www.google.co.jp/search?hl=ja&q=%E6%95%99%E3%81%88%E3%81%A6

でも良いわけです。
というわけで,


> 1. テキスト入力フィールドを作り、インスタンス名 q_txt
> 2. searchボタンを作り、インスタンス名 send_btn

この q_txt と send_btn が _root なら _root で同じ階層にあり,
なおかつ,
send_btn がボタンシンボルのインスタンスであったとしたら,
その send_btn に書くスクリプトは,

-------------------------------------
on (release) {
getURL("http://www.google.co.jp/search?hl=ja&q="+q_txt.text, "_blank");
}
-------------------------------------
(※自動リンクがかからないように頭の h と w を全角にしてます)


となります。
だいたいはコレで行けると思うのですが,
(実際にアップしてみて「検索できない」という報告は受けていません)
2バイト文字は URL エンコードした方が良いです。
というわけで,
q_txt.text をエスケープします。

-------------------------------------
on (release) {
var ques = escape(q_txt.text);
getURL("http://www.google.co.jp/search?hl=ja&q="+ques, "_blank");
}
-------------------------------------
(※自動リンクがかからないように頭の h と w を全角にしてます)

これ↑で,行けると思います。
試しに q_txt に「教えて」を入力し,ボタンをクリックすると,
http://www.google.co.jp/search?hl=ja&q=%E6%95%99 …
に行けるはずです。
もしくは,GETで変数を渡す場合は,
エスケープする必要はなく,
こうなります↓。

-------------------------------------
on (release) {
var q = q_txt.text;
getURL("http://www.google.co.jp/search?hl=ja", "_blank", "GET");
}
-------------------------------------
(※自動リンクがかからないように頭の h と w を全角にしてます)


HTML から検索する場合は,
そのページで使用されている文字コードの種類やいろいろな都合で,
変な変数を送らなければなりませんが,
デフォルトでは必要ないので,上記で行けると思いますよ。
    • good
    • 0
この回答へのお礼

sassakun様
とても明快なご説明、ありがとうございました。
おかげさまで目的を達成することができました。

>GETで変数を渡す場合は,
>エスケープする必要はなく,

>HTML から検索する場合は,
>そのページで使用されている文字コードの種類やいろいろな都合で,
>変な変数を送らなければなりませんが,
>デフォルトでは必要ないので

など、勉強になりました。
感謝いたしております!

お礼日時:2006/10/17 11:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!