[解決済み] サーバーサイドからUrl Hash (#) を取得する方法
質問
クライアント側(javascript)では、windows.location.hashを使用できることは知っていますが、サーバー側からアクセスする方法が見つかりませんでした。私はasp.netを使用しています。
どのように解決するのですか?
私たちは、ASP.Net のポストバックにわたって URL ハッシュを永続化する必要がある状況にありました。ブラウザはデフォルトでハッシュをサーバーに送信しないので、それを行う唯一の方法は、いくつかの Javascript を使用することです。
-
フォームが送信されたときに、ハッシュを取得します (
window.location.hash
) を取得し、サーバーサイドの隠し入力フィールドに保存します。 これを " という ID の DIV に置きます。urlhash
というIDのDIVに入れます。 -
サーバー上で を使用する必要がある場合、この値を使用することができます。必要であれば変更することもできます。
-
ページロード時 クライアント上で で、この隠しフィールドの値をチェックする。自動生成されたIDが分からないので、それが含まれているDIVによってそれを見つけたいと思うでしょう。 はい、あなたはここで.ClientIDでいくつかのトリックを行うことができますが、私たちはラッパーDIVを使用する方が簡単であることを発見した、それはこのすべてのJavascriptが外部ファイルに住み、汎用的に使用されることを可能にするからです。
-
隠し入力フィールドに有効な値がある場合、それをURLハッシュとして設定します (
window.location.hash again
) や他のアクションを実行します。
フィールドの選択などを簡略化するためにjQueryを使用しました...結局、いくつかのjQueryの呼び出し、値を保存するための1つ、それを復元するための1つとなっています。
送信前。
$("form").submit(function() {
$("input", "#urlhash").val(window.location.hash);
});
ページロード時。
var hashVal = $("input", "#urlhash").val();
if (IsHashValid(hashVal)) {
window.location.hash = hashVal;
}
IsHashValid()
は " をチェックすることができます。
undefined
"など、処理したくないものを処理することができます。
また、必ず
$(document).ready()
を適切に使うことももちろん必要です。
関連
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] JavaScriptでURLをエンコードする?
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] アプリケーションからAndroidのWebブラウザでURLを開くにはどうすればよいですか?
-
[解決済み] JavaScriptでURLの#hashを確認する方法は?
-
[解決済み] クライアントサイドとサーバーサイドのプログラミングの違いは何ですか?
-
[解決済み] URLの%2Cとは何ですか?
最新
-
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 実装 サイバーパンク風ボタン