jQuery / JavaScript:从 更改 URL 哈希值标签或表单提交

发布于 2024-10-06 16:31:19 字数 347 浏览 0 评论 0原文

是否有可能以某种方式影响 标记中 URL 的哈希值?

我需要在不刷新页面的情况下启动搜索,但还想更改 URL 哈希,例如:当我输入 hello world< 时:search.html#query=hello%20world /code> 特别是 并按 Enter(或提交)。

UPD:我有一个 AJAX 搜索,但我想保持历史记录后退和前进按钮正常工作。

因此,每次用户搜索某些内容时,我希望他留在同一页面,通过 AJAX 加载搜索结果并更改页面的 URL 哈希以启用历史记录按钮。

is it possible to somehow affect the hash of the URL from the <input> tag?

I need to initiate a search without a page refresh, but also want to change the URL hash, for example: search.html#query=hello%20world, when I have typed hello world in particular <input> and hit Enter (or submit).

UPD: I have an AJAX search, but I want to keep the history back and forward buttons working.

So, each time the user searches something, I want him to stay at the same page, load search results via AJAX and change the page's URL hash to enable the history buttons.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一城柳絮吹成雪 2024-10-13 16:31:19

是的。

document.getElementById('search-form').onsubmit = function() {
    var hash = 'query=' + 
               encodeURIComponent(document.getElementById('query').value);

    window.location.hash = hash;
};

在 jsFiddle 上查看

Yes.

document.getElementById('search-form').onsubmit = function() {
    var hash = 'query=' + 
               encodeURIComponent(document.getElementById('query').value);

    window.location.hash = hash;
};

See it on jsFiddle.

复古式 2024-10-13 16:31:19

使用 window.location.hash 属性获取和设置哈希值。

var e = document.getElementById('search');
window.location.hash = "#"+escape(e.value);

Use window.location.hash property to get and set the hash.

var e = document.getElementById('search');
window.location.hash = "#"+escape(e.value);
简美 2024-10-13 16:31:19

由于您是异步执行此操作,因此我无法确切地告诉您如何执行此操作,但我假设您有某种搜索功能,您可以在其中获取 input 的值并执行搜索:

function your_search_function()
{
    var searchString = document.getElementById('your-input').val // get the value

    // do your search stuff...

    window.location.hash = 'query=' + encodeURIComponent(searchString);
}

Since you're doing this asynchronously, I can't tell you exactly how to do it, but I'll assume you have some sort of search function in which you get the value of the input and perform the search:

function your_search_function()
{
    var searchString = document.getElementById('your-input').val // get the value

    // do your search stuff...

    window.location.hash = 'query=' + encodeURIComponent(searchString);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文