2017-03-27 4 views
-1

google.no(norway)にリンクする検索バーを作成しようとしています。音楽を検索すると、次のURLが得られます:https://www.google.no/#q=music& *。私の質問は、私が(& *)を検索の終わりに得る方法です。&*で検索したURLを終了する方法

.search { 
 
    border: solid 1px grey; 
 
    border-radius: 3px; 
 
    padding: 10px; 
 
    padding-left: 30px; 
 
    padding-right: 30px; 
 
    font-size: 15px; 
 
    margin: 15px; 
 
}
<form class="form" action="http://www.google.no/#q="> 
 
    <input class="search" name="q" placeholder="Search..."> 
 
</form>

+0

注ので、**後**任意のパス/クエリ/パラメータであるフラグメント識別子、です。他の手段(Javascript)でURLを構築してリンクする必要があります。または、URLの通常のクエリバージョンを使用します。 – jcaron

答えて

0

それはそれでアンカー#を持っているので、あなたは、このGoogleのページに提出することができません。これは、通常のGET形式ではないことを意味します。このURLにフォームを送信するだけであれば、取得できます。 JavaScriptまたはバックエンド側で正しいURLを計算する必要があります。

JavaScriptで正しいURLを作成する場合は、関数encodeURIComponent(url)を使用してパラメータをエスケープできます。ここ

は一例である:これは、 '#'の後であること

var searchBox = document.querySelector('.search'); 
 
var form = document.querySelector('.form'); 
 

 
form.addEventListener('submit', function(event) { 
 
    var value = searchBox.value; 
 
    var escapedValue = window.encodeURIComponent(value); 
 
    var url = "https://www.google.no/#q=" + escapedValue 
 

 
    alert(url); 
 
    window.location.href = url; 
 

 
    event.preventDefault(); 
 
});
<form class="form" action="test"> 
 
    <input class="search" name="q" placeholder="Search..."> 
 
    <input type="submit" class="submit" value="Submit"> 
 
</form>

関連する問題