プロが教える店舗&オフィスのセキュリティ対策術

 javascriptで、
 1.フォームのテキストボックスに入れられた値を取得し、
  例)テキストボックス入力 ; test
 2.元々記述されているリンクURLをユーザがクリックした時、
  例)元々のリンクURL ; <a href="www.google.co.jo?q= ~...
 3."1"のテキストボックス内に記述された値を取得して、"2"のURLを書き換え、
  例)テキストボックス内の文字をURLの一部に追記する ; <a href="www.google.co.jo?q=test  ~...
 4.書き換えられた後のURLにユーザを飛ばす、
 ・・・という事って出来るんでしょうか。
 上記動作内でユーザの動作は、
  テキストボックスに文字を入れる、という動作と、
  リンクをクリックする、という動作のみです。

 フォームのボタン押下後、というのであれば出来たんですが、上記の様な動作のコードが思い浮かびません・・・。PHPとかCGIではなく、Javascriptで何とか出来ないでしょうか。
 お知恵拝借、よろしくお願いします。

A 回答 (3件)

onkeyupで処理してみては?



<script>
function hoge(v){
var url="http://www.google.co.jp?q=";
document.getElementById("fuga").href=url+v;
}
</script>

<input type="text" onkeyup="hoge(this.value)">
<a href="http://www.google.co.jp?q=" id="fuga">とぶ</a>

この回答への補足

 回答ありがとうございます。まさにこんな方法を探していました。

 が・・・すいません。知識不足のせいだと思うのですが、上記内容でテストした所、何故か、URLの先頭にローカルホストのアドレスとテスト作成したJavascript入りのhtml名が入ってしまいます・・・?。
 > 書き換わった後のリンクの値 : http://127.0.0.1/test.htm?http://www.google.co.jp?q=テキストボックスの値)
 テスト環境はxampp1.6.8(apache2.2)なのですが、何か環境のせいなのでしょうか。何かヒントを頂けると嬉しいです。よろしくお願いします。

補足日時:2009/08/18 02:14
    • good
    • 0
この回答へのお礼

すいません。自己解決したました。
書いて頂いたスクリプトを、テキストエディタに貼り付けた所、何故か

var url="~のダブルコーテーションの次の文字に、半角?が入ってしまっていました。

これで解決です。お騒がせしました。

お礼日時:2009/08/19 01:17

<a onclick="">で、this.hrefを書き換えればいいんじゃないでしょうか。

    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ・・・onclickだとClickしないといけなそうなので今回のケースでは残念ですが使えなさそうです。

コメント有難うございました。

お礼日時:2009/08/18 02:00

<A>タグのリンク先をURLではなく、Javascriptの関数にしてはだめなのでしょうか。

それであれば、ボタンを押したのと同様のやり方で、対応できると思いますが。

この回答への補足

早速のご返事、ありがとうございます。
> Javascriptの関数にしては
 この方法ですと、そもそものURLを右クリックして、別Windowまたは別タブで開きたい人の動作を考えると、最後の手段にしたいです。右クリックした時や、プロパティを見ると、"javascript:void(x);"とかになりませんか?
 やっぱりダメっぽいですかねぇ・・・。

補足日時:2009/08/17 00:38
    • good
    • 0

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