url - 如何从服务器端获取 Url Hash (#)

标签 url server-side fragment-identifier

我知道在客户端(javascript)你可以使用 windows.location.hash 但无论如何找不到从服务器端访问。我正在使用 asp.net。

最佳答案

我们遇到过需要在 ASP.Net 回发中保留 URL 哈希的情况。由于默认情况下浏览器不会将哈希值发送到服务器,因此唯一的方法是使用一些 Javascript:

  1. 当表单提交时,获取哈希 (window.location.hash) 并将其存储在服务器端隐藏输入字段中 将其放入 id 为“urlhash”,这样我们以后就可以轻松找到它。

  2. 在服务器上,如果您需要使用该值执行某些操作,则可以使用该值。如果需要,您甚至可以更改它。

  3. 在客户端加载页面时,检查此隐藏字段的值。您需要通过它所在的 DIV 来查找它,因为自动生成的 ID 是未知的。 是的,您可以使用 .ClientID 进行一些欺骗,但我们发现仅使用包装器 DIV 更简单,因为它允许所有这些 Javascript 存在于外部文件中并以通用方式使用。

  4. 如果隐藏的输入字段具有有效值,请将其设置为 URL 哈希(再次window.location.hash)和/或执行其他操作。

    <

我们使用 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()

关于url - 如何从服务器端获取 Url Hash (#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/317760/

相关文章:

java - 从 URL 中检索片段(散列)并将值注入(inject) bean

Jquery从MVC url获取参数Id?

javascript - 如何使 JavaScript 兼容客户端和服务器端?

java - 保护来自客户端应用程序的服务器端输出

javascript - 客户端和服务器端编程有什么区别?

php - 如何在 URL 中显示 Ajax 请求?

javascript - 检测点击的url中是否有hash值

url - 移动设备的 OAuth 回调程序

file - 从url下载数据的批处理文件

Python正则表达式将youtube url转换为youtube视频