【问题标题】:Change URL params or remove some part of URL with jquery使用 jquery 更改 URL 参数或删除 URL 的某些部分
【发布时间】:2013-09-21 09:35:39
【问题描述】:

我有这个 URL,想知道如何通过 jQuery 事件从中删除这个部分。

需要删除:

&activities_id=13&session_id=14&back=1

原网址:

http://somedomain.com/ijob-css/index.php/search/default/index/area/act?query=&activities_id=13&session_id=14&back=1

编辑

抱歉,我认为我没有包括最重要的部分。我应该更改地址栏 url 而不是普通字符串。

例如,如果我在地址栏中有这个url - http://somedomain.com/ijob-css/index.php/ 更改后,地址栏应该包含http://somedomain.com/xxx=111,无需刷新页面。

【问题讨论】:

  • 您可以从分配了 URI 的字符串中删除它,但这是您想要的吗?或者您是否希望将浏览器实际指向一个新的 URI,减去您要删除的部分?
  • @andrew-buchan 我想从 URL 中删除提到的部分并离开页面而不刷新。就像这样,一旦用户按下后退按钮,他就会被带到这里显示一个预加载的对话框。因此,在显示对话框后,我需要从 URL 中删除该部分,而无需重新加载页面。
  • 从下面我的回答中查看link。我相信 replaceState() 是您问题的答案。但是,并非所有浏览器/版本都支持它。 History.js 封装了 HTML5 状态特性,并为 HTML4 浏览器提供了额外的支持。

标签: javascript jquery url url-rewriting


【解决方案1】:

你的意思是你想要没有查询参数部分的 URL 吗?如果然后看看这是否有帮助。

var test = 'http://somedomain.com/ijob-css/index.php/search/default/index/area/act?query=&activities_id=13&session_id=14&back=1';

alert(test.substring(0, test.indexOf('?')));

如果您想要直到第一个查询参数名称,那么只需寻找直到 & 的索引

更新:

如果您使用的是 HTML5,那么您的要求是可能的。检查浏览器历史操作。您可以找到有关此here 的详细信息。

我相信 replaceState() 是您问题的答案。但是,并非所有浏览器/版本都支持它。 History.js 包装了 HTML5 状态特性,并为 HTML4 浏览器提供了额外的支持。

【讨论】:

  • 是的。这是可行的。检查this 链接。它详细解释了这些步骤。另请查看该页面中的示例链接。它每次都更改 URL 以获取照片而无需重新加载页面。
【解决方案2】:

使用这个

var test='http://somedomain.com/ijob-css/index.php/search/default/index/area/act?query=&activities_id=13&session_id=14&back=1';
test=test.split('&')[0];

console.log(test);

输出

http://somedomain.com/ijob-css/index.php/search/default/index/area/act?query=

【讨论】:

    【解决方案3】:

    见下文。

    var positionToSubstring = this.location.href.indexOf('&');
    var newURI = this.location.href.substring(0, positionToSubstring);
    

    【讨论】:

      【解决方案4】:
      var index = original_url.indexOf("=");
      var new_url = original_url.substring(0,index+1);
      

      【讨论】:

        【解决方案5】:
        var lastPart = 'query=';
        var url = 'http://somedomain.com/ijob-css/index.php/search/default/index/area/act?query=&activities_id=13&session_id=14&back=1'.split(lastPart)[0] + lastPart;
        

        【讨论】:

          【解决方案6】:

          试试这个

          var new_url = old_url.substring(0, old_url.indexOf('&'));
          

          示例: http://jsfiddle.net/SjrqF/

          var url = 'youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata';
          
          url = url.slice( 0, url.indexOf('&') );
          

          或:

          示例: http://jsfiddle.net/SjrqF/1/

          var url = 'youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata';
          
          url = url.split( '&' )[0];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-01-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-05-28
            • 1970-01-01
            • 2014-09-29
            • 2019-02-05
            相关资源
            最近更新 更多