【问题标题】:How can I add a parameter to my url, without reload the page?如何在不重新加载页面的情况下向我的网址添加参数?
【发布时间】:2016-02-22 17:57:40
【问题描述】:

我有这个网址http://localhost:1234/pag1

当我点击 div 时,我想像下面这样:

 http://localhost:1234/pag1?fare=standar

我有一个 onclick 事件函数:

 <div id="" onclick="addUrl();"> </div>

还有js代码:

<script type="text/javascript">
 function addUrl() {
    var url = window.location.href;
    window.location.hash = '?fare=standar';
};
    </script>

这给了我这个结果:

http://localhost:1234/pag1#?fare=standar

而且我不知道如何删除 (#)。我只需要将参数添加到url,无需刷新页面。

建议我!谢谢。

【问题讨论】:

  • 在单击 div 时,您是否希望使用新 url 重新加载页面?
  • 在单击 div 时,我希望将新参数添加到实际 url,而无需重新加载页面。
  • 那么您需要将 url 存储在变量中。你不能在url中显示它。

标签: javascript asp.net url


【解决方案1】:

使用window.history.pushState( {} , '', '?fare=standar' );

这应该会在不刷新的情况下更新 url。

您还可以对 pushState 进行一些研究,因为实现可能会有所不同。

【讨论】:

  • 刚刚在 stackoferflow 页面上测试了该方法并且它有效。在控制台输入方法,查看结果
  • 如果是正确的请标记答案:) 谢谢
  • 是的,您的回答正确,感谢您的帮助。
【解决方案2】:

window.location.hash 总是在 url 中加上“#”

您可以使用此功能将参数推送到url中

function setGetParameter(paramName, paramValue)
{
    var url = window.location.href;
    if (url.indexOf(paramName + "=") >= 0)
    {
        var prefix = url.substring(0, url.indexOf(paramName));
        var suffix = url.substring(url.indexOf(paramName));
        suffix = suffix.substring(suffix.indexOf("=") + 1);
        suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : "";
        url = prefix + paramName + "=" + paramValue + suffix;
    }
    else
    {
    if (url.indexOf("?") < 0)
        url += "?" + paramName + "=" + paramValue;
    else
        url += "&" + paramName + "=" + paramValue;
    }
    window.location.href = url;
}

希望对你有帮助

【讨论】:

  • 感谢您的回答,但是代码太长,我在一行中得到了解决方案;-D
【解决方案3】:

试试这个

HTML

<div onclick="addUrl()"> </div>

Javascript

  <script type="text/javascript">
    function addUrl() {
    var url = window.history.pushState( {} , '', '?fare=standar' );
  </script>

快速解释:当用户点击div时,URL会更新而不刷新页面。

希望这对你有用, 谢谢你:-)。

【讨论】:

    【解决方案4】:

    试试这个

    var myURL = document.location;
    document.location = myURL + "?a=parameter";
    

    或者

    location.hash = 'a=parameter'
    

    或者不重新加载页面

    window.history.pushState("object or string", "Title", "new url");
    

    或者不重新加载页面

    window.history.replaceState(null, null, "/another-new-url");
    

    【讨论】:

    • 我不想重新加载页面。
    【解决方案5】:

    为什么不使用 jQuery?我在JsFiddle 中准备了这样的样本:

    $("#clickableDiv").click(function(){
      var url = "http://localhost:1234/pag1";
      var parameter = "fare=standar";
      $("#AppendUrl").text(url+ "?" + parameter);  
    });
    

    【讨论】:

    • 感谢您的回答,但是您将 url 添加到

      ,我需要将此添加到 URL 而无需重新加载页面。

    • 我不懂你。你说的是阿贾克斯吗?像这样的东西:stackoverflow.com/questions/18490026/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2018-04-15
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多