サーバー側から URL ハッシュ (#) を取得する方法 質問する

サーバー側から URL ハッシュ (#) を取得する方法 質問する

クライアント側 (JavaScript) では windows.location.hash を使用できることはわかっていますが、サーバー側からアクセスする方法が見つかりません。私は asp.net を使用しています。

ベストアンサー1

ASP.Net ポストバック全体で URL ハッシュを保持する必要があった状況がありました。ブラウザはデフォルトではハッシュをサーバーに送信しないため、これを行う唯一の方法は JavaScript を使用することです。

  1. フォームが送信されると、ハッシュ ( window.location.hash) が取得され、サーバー側の非表示入力フィールドに保存されます。これを、urlhash後で簡単に見つけられるように、ID が " " の DIV に配置します。

  2. サーバー上この値を使用して何かを行う必要がある場合は、この値を使用できます。必要に応じて変更することもできます。

  3. ページ読み込み時クライアント側この隠しフィールドの値を確認してください。自動生成された ID は不明なので、フィールドが含まれている DIV で検索する必要があります。はい、ここで .ClientID を使用していくつかのトリックを実行することもできますが、このすべての Javascript を外部ファイルに配置して汎用的に使用できるため、ラッパー DIV を使用する方が簡単であることがわかりました。

  4. 隠し入力フィールドに有効な値がある場合は、それを URL ハッシュ ( window.location.hash again) として設定し、その他のアクションを実行します。

フィールドの選択などを簡素化するために jQuery を使用しました。全体として、値を保存するための jQuery 呼び出しと、値を復元するための jQuery 呼び出しがいくつか必要になります。

送信前に:

$("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()また、もちろん適切な使用を心がけてください。

おすすめ記事