1

これがサーバーなしでjavascriptで実行できるかどうかはわかりません。

基本的に、私はGoogle Maps APIを使用して同じページに特定の検索結果を生成し、ユーザーがクリックしたときにwww.exampleのようなカスタムリンクを生成するように共有ボタンを作成できるようにしたいと考えています。 com /?search=Anaheim。次に、ユーザーまたは別のユーザーがそのURLをアドレスバーに入力すると、それらの結果を含むページが表示されます。

現在、私は1つのhtmlページでのみ検索を行っていますが、リンクを入力することで1つのhtmlページのデフォルトのホームロケーションを変更できるようにする方法がわかりません。または、これは不可能ですか、私は何か他のことをする必要がありますか?

アドバイスをいただければ幸いです。ありがとう!!

編集:これはおそらく理解するのが少し混乱します..しかし、基本的には、リンクボタンをクリックしたときにグーグルマップがリンクを生成するのと同じ方法でリンクを生成できるようにしたいと思います。

4

2 に答える 2

0

jQuery BBQAPI docs)は、これを実現するための私のお気に入りのツールです。

次のイベントリスナーを追加するだけですhashchange

$(window).bind('hashchange', function(e) {
    var q = $.bbq.getState('q');
    if (q) {
        // do your Google Maps search for `q`
    }
});

hashchangeそして、ページが最初に読み込まれたときにをトリガーします。(イベントはページの読み込み時に自動的に発生しません。プログラムで、またはユーザーがURLをいじってURLを変更した場合にのみ発生します)

$(window).trigger('hashchange');

example.com/#q=Anaheimを開くと、Anaheimが検索されます。

ボーナスポイントの場合:ユーザーがEnterキーを押す(および/またはボタンをクリックする)と関数を呼び出すテキストボックスがページにあると思います。検索関数を直接呼び出す代わりに、を使用pushStateして検索語をURLに追加します。(ページはリロードされません。)これにより、ユーザーはページをブックマークに追加するか、ブラウザーのアドレスバーからURLをコピーできるため、すぐにブックマークできるようになります。

// on key 13 / search button click:
$.bbq.pushState({ q: $('#searchTerm').val() });

必要なのはそれだけです。ハンドラーはhashchangeそこからピックアップします。

于 2012-07-18T01:33:53.097 に答える
0

あなたが探しているのは、「ディープリンク」を生成することです

http://en.wikipedia.org/wiki/Deep_linking

クライアント側でそれを行うことができます。

URLを正しく解釈し、同じ結果を生成する優れたJSフレームワークを使用することをお勧めします。

例えば

http://angularjs.org/

http://backbonejs.org/

私はGoogleマップの経験が十分ではありませんが、JSフレームワークはGoogleMaps(おそらくAJAX)を呼び出し、一意のURLを生成する必要があります

これらの一意のURLを使用して、アプリケーションにトラックバックできます。フレームワークがURLを正しく解釈すると、GoogleMapsに対して同じAPI呼び出しを行う必要があります。これは、URLを生成するのは初めてです。

于 2012-07-18T01:17:33.480 に答える