【问题标题】:Write GET parameters with JavaScript?用 JavaScript 写 GET 参数?
【发布时间】:2013-01-08 03:50:04
【问题描述】:

简单问题:我可以用 JavaScript 将 GET 参数写入当前文档 URL 吗?

假设我的网址是:

/search

我可以改成:

/search?price_from=100

不发回页面?

我正在创建一个单页 JavaScript 应用程序和 History API。我想让人们在不重新加载页面的情况下进行搜索。我还想让他们链接到使用标准 GET 参数的结果页面 URL。

【问题讨论】:

  • 您可以发布您尝试过的任何代码吗?如果你使用 History API,你不能只使用 pushstate 吗?
  • 看来我可以,是的。出于某种原因,我认为我无法使用 pushstate 向 URL 写入问号。一个不正确的假设。

标签: javascript http url url-rewriting


【解决方案1】:

只需使用history.pushState:

var getParameters = "?price_from=100"
history.pushState(null, null, document.location.origin + document.location.pathname + getParameters);

但旧版浏览器不支持 History API,如果您需要支持它们,可以使用 Mark 的建议。

【讨论】:

    【解决方案2】:

    没有。但是,您可以将其放在哈希之后,例如:

    /search#price_from=100

    这不会重新加载页面/回发。

    【讨论】:

    • 如果您使用框架来构建单页应用程序,这将变得容易得多。 AngularJS 对此有一个漂亮的机制。
    • 这是一个全新的 AngularJS 应用程序示例。 LendingTree 刚刚启动了这个网站:lendingtree.com/loan-explorer 它是用 angularjs 构建的。
    • 我正在使用 Backbone.js,所以我可以使用 app.navigate()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 2014-11-20
    • 1970-01-01
    • 2014-03-23
    相关资源
    最近更新 更多