2012-02-15 4 views
-1

JavaScriptとAJAXで作業しています。 AJAX関数の1つが、URLの最後に "#"記号を追加します。この関数は機能しますが、なぜこの関数だけがその符号を追加し、他の関数は追加しないかを知りたいと思います。 "#"記号は将来的にいくつかの問題をもたらすことができますか?"#" sign on URL

+0

ajax関数を自分で記述しましたか?または図書館から?より具体的にしてください – paislee

+0

JSフレームワークを使用していますか?あなたが使用している機能がわからない限り、私たちは確実に言い表すことはできません。 –

+0

ヒント:[... 15/sign-on-url#footer](http://stackoverflow.com/questions/9299815/sign-on-url#footer):P – Andrew

答えて

2
  1. #符号はあなたがページの部分に移動していないだけで、トップにすることができますハッシュ符号と呼ばれ、ページ上のアンカーからURLを分離する傾向がある、されますページのはそうあなたが簡単に(history APIを使用せずにバックを行くことができますAJAXの世界では

  2. が、これはまた、現在のページを維持するために使用することができ、あなたが(ページがロードされる非同期)どこから来たのか簡単に知ることができますあなたが簡単に知ることができるhttp://domain.com/page2.htm#page1.htmのようなURLでこの技術を使用しjQueryMobileのアルファ版)

  3. あなたはdocument.location.hash

  4. を使用してから来たんどこが、通常はHでアンカータグを持つシンプルですash as hrefのように<a href="#">click here</a>の魔法使いは、anchorタグにリンクのように振る舞うことを知らせて、どこにも行かないようにする簡単なトリックです。あなたのURLにそれが書かれたくない場合は、単にfalseアンカーリンクは#にジャンプしません(魔法使いは現在のページです)。

ところで、これは決してあなたのコードや今後のコードではうんざりしません。

+1

+1#4の注釈:jQueryでは、falseを返すとイベントのバブリングが防止されます。バブリングを続けるが、href属性のURLにナビゲートしない場合は、代わりに[event.preventDefault()](http://api.jquery.com/event.preventDefault/)を使用できます。 [この質問](http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false)はいいリファレンスです。 – grossvogel

+1

@grossvogel **私はjavascriptフレームワークについて何も言いたくありませんでした。** mootols **または** jQuery **以外のものを使用しています。あなたの言うことはjQueryにのみ適用されます。各フレームワークはfalseを返す独自の実装です... – balexandre

2

ほとんどの場合、#を追加しているjavascriptではなく、JavaScriptをトリガーするリンクをクリックしている可能性が高いです。

多くの人々がこのようなものでしょう:

<a href="#" onclick="something()">text</a> 

をこのようにテキストは、リンクのように表示されますが、リンクをクリックすると、ページからユーザーになりませんし、いくつかのJavaScriptを実行します。これの副作用は、URLに#が追加され、ユーザーが画面の上部にスクロールされることです。 URLの

1

URL上のハッシュ記号(#)の後の部分をフラグメントといいます。

当初、HTML文書のローカルアンカーに使用することを意図していました。

しかし、ブラウザで戻るボタンを使用できるように、ヒストリ状態を維持できるようにするために、通常はAJAXアプリケーションでも使用されます。

たとえば、jQuery BBQ pluginを使用すると、クエリパラメータと同様にパラメータを読み取り/設定し、URLの?以降のパラメータを監視し、これらのパラメータの変更を監視して、ページ全体を再ロードせずに他のアクションをトリガすることができます。

さらに、<a />リンクを:link(CSS表記)として認識させるには、空でないhref属性が必要です。通常、href="#"が使用されます。なぜなら、最後にURIがある場合とないURIが等しいからです。 (#以降のものは、ページの要求の一部としてハッシュ自体をサーバーに送信しません。)

1

#は、ページ内の特定の名前付き要素のビューを中央に置くブラウザを指定するために使用されます。例えば

"#" sign on URL

また、#後に何かがGETパラメータを介してサーバに渡すことはありません。