2009-12-02 60 views

回答

22

您可以简单地使用.split()window.location.href,并抓住最后一项。

例子:

var lastPart = window.location.href.split("/").pop(); 
+0

或'Array#pop()' – 2009-12-02 18:58:57

+0

好的建议,Chetan。更新了我的回复。 – Sampson 2009-12-02 19:00:56

+0

这将创建一个数组(拆分方法将),而Jacobs的解决方案不会。 – Dementic 2012-10-05 15:58:14

3

使用document.location.href.substring(document.location.href.lastIndexOf('/'));

+1

如果您不想抓取URL的查询部分,我会使用'location.pathname'而不是'location.href';另外,出于兼容性原因,MDC建议使用'window.location'而不是'document.location' – Christoph 2009-12-02 18:58:15

+0

如果url以'/'结尾,这将无法获得片段,但它确实回答了OP的答案。 – Dementic 2012-10-05 16:00:27

1

其他的答案都很好,但是如果您的网址是这样的:

http://example.com/test/action?foo=bar 

,他们将无法给你只是 “动作”。要做到这一点,你会使用pathname,其中包含(在这种情况下,即/test/action)独家查询字符串参数的唯一路径信息:

location.pathname.split('/').pop(); 
0

使用jQuery:

var idFromUrl = window.location.href.split("/").pop(); 
$('#various3').attr('href', $('#various3').attr('href').replace('placed_id', idFromUrl)); 
0

下面是我的工作的javascript解决方案。希望它有助于某个人,因此发布。此解决方案是检索url的最后一部分,留下通常不需要的查询字符串部分。它有助于确定访问从哪个页面发生,并基于此编写逻辑。

var url = document.referrer; 
    var start = url.lastIndexOf("/") + 1; 
    var len = url.indexOf("?"); 
    if (len > 0) 
     url = url.substring(start, len); 
    else 
     url = url.substring(start); 
0

忽略所有的答案,并使用这个:window.location.pathname.substr(1);容易。