【问题标题】:replace current url without reloading the page替换当前网址而不重新加载页面
【发布时间】:2014-01-12 10:07:21
【问题描述】:

我想从浏览器中获取当前 URL 并将最后一个数字参数替换为其他数字,我的示例 URL:

app#!folder/1/document?p=1

要替换的参数 - ?p=1 到 ?p=3

参数编号是动态生成的,所以我必须从 URL 中获取参数

我想将此 JavaScript 作为字符串执行, 非常感谢您的帮助

【问题讨论】:

  • 'execute this JS as String" 是什么意思?当你用 vaadin 标记它时,它不是用于导航的 Navigator 吗?在这种情况下,你的链接不应该看起来像 app# !folder/1/document/1?

标签: javascript url vaadin


【解决方案1】:

我在不使用 javascript 的情况下解决了这个问题(VAADIN FRAMEWROK)

String url = Page.getCurrent().getUriFragment().toString();
url = url.replaceAll("\\?p=([0-9])?", "?p=1");
Page.getCurrent().setUriFragment(url, true);

【讨论】:

    【解决方案2】:

    除非我遗漏了什么,否则请像这样使用String#replace()

    url = url.replace("?p=1", "?p=3");
    

    【讨论】:

    • 是的,但是我想用JavaScript做这个,数字是动态生成的,所以我必须取实际参数并替换他
    • 是的。将其转换为 '?p='+i,假设您在“i”中有它
    • 那么,如何通过 javaScript 执行这个
    【解决方案3】:

    请注意,对当前 URL 的修改将重新加载页面,除非它发生在哈希部分(# 字符之后),这显然是您想要做的。

    当前 URL 可以通过 location.href 变量在 javascript 中修改:

    location.href = location.href.replace("p=1", "p=3");
    

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 2013-08-22
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 2019-02-22
      相关资源
      最近更新 更多