[解決済み] jquery: リダイレクトせずにURLアドレスを変更する?重複
質問
重複の可能性があります。
AJAXアプリのアドレスバーのURLを現在の状態に合わせて変更する
ページをリダイレクトせずにURLアドレスを変更するにはどうすればよいですか?
例えば、下のこのリンクをクリックしたとき。
<a href="http://mysite.com/projects/article-1" class="get-article">link</a>
リンク先からURLを取得します。
var path = object.attr('href');
以下のようにすると、ページがリダイレクトされます。
window.location = path;
次のようなことをしたい。 サイト をクリックすると、ajax呼び出しは要求されたページを取得し、ウィンドウ上のURLアドレスも変更され、クリックしたものへのパスがあるようにします。
どのように解決するのですか?
注意してください。
history.pushState()
は現在サポートされています。
あなたは できない はリダイレクトせずにURL全体を変更することはできませんが、代わりにできることは ハッシュ .
は ハッシュ は、URL の # 記号の後に続く部分です。これは当初、HTML文書のセクションを(ローカルに)指示するためのものでしたが、javascriptで読み込んで修正することで、それを利用することができるようになります をグローバル変数のように使用することができます。 .
うまく適用すれば、このテクニックは2つの点で役に立ちます。
- ブラウザーの履歴が、(URL+ハッシュが変更されて以来)あなたが行った異なるステップをそれぞれ記憶します。
- を使用すると、特定の html ドキュメントにリンクするだけでなく、javascript に何をすべきかの手がかりを与えるアドレスを持つことができます。つまり、最終的には Web アプリ内の状態を指すことになります。
ハッシュを変更するには、次のようにします。
document.location.hash = "show_picture";
ハッシュの変化を見るには、次のようなことをする必要があります。
window.onhashchange = function(){
var what_to_do = document.location.hash;
if (what_to_do=="#show_picture")
show_picture();
}
もちろん、ハッシュは単なる文字列なので、好きなように使うことができます。例えば、JSONを使用している場合、そこにオブジェクト全体を置くことができます。 文字列化 として文字列化すれば、オブジェクト全体をそこに置くことができます。
それを使って高度なことをするために、非常に優れたJQueryライブラリがあります。
関連
-
[解決済み] jQuery が Ajax 呼び出しの終了を待って戻るようにするにはどうすればよいですか?
-
[解決済み] jQueryを使って要素のIDを取得するにはどうすればよいですか?
-
[解決済み] jQueryを使用しない$(document).ready相当
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] jQueryでドロップダウンリストの選択値を変更する
-
[解決済み] jQuery.ajaxでmultipart/formdataを送信する。
-
[解決済み] jQueryを使ってロールオーバー時に画像ソースを変更する
-
[解決済み】iPad版SafariでjQueryを使ってタッチイベントを認識させる方法は?可能でしょうか?
-
[解決済み] jQueryを使用して文字列から最後の文字を削除する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught TypeError: 未定義のプロパティ 'length' を読み取れませんでした。
-
[解決済み] JavaScript - 二重引用符のエスケープ
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] jQueryでオブジェクトに登録されたイベントハンドラを検索する
-
[解決済み] 動的に生成された要素でクリックイベントが動作しない [duplicate]
-
[解決済み] ドロップダウンのアイテムの選択値をjQueryで取得する
-
[解決済み] jQueryで5秒待つには?
-
[解決済み] ボタンやリンクを無効化・有効化する最も簡単な方法とは(jQuery + Bootstrap)
-
[解決済み] jQueryを使用して文字列から最後の文字を削除する方法は?
-
[解決済み] AJAXアプリのアドレスバーのURLを現状に合わせて変更する