使用 JavaScript 从 URL 中提取路径的正确方法是什么?
例子:
我有网址
http://www.somedomain.com/account/search?filter=a#top
但我只想得到这部分
/帐户/搜索
如果有任何可以利用的东西,我正在使用 jQuery。
原文由 BuddyJoe 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 JavaScript 从 URL 中提取路径的正确方法是什么?
例子:
我有网址
http://www.somedomain.com/account/search?filter=a#top
但我只想得到这部分
/帐户/搜索
如果有任何可以利用的东西,我正在使用 jQuery。
原文由 BuddyJoe 发布,翻译遵循 CC BY-SA 4.0 许可协议
window.location.href.split('/');
将为您提供一个包含所有 URL 部分的数组,您可以像普通数组一样访问它。
或者@Dylan 建议的更优雅的解决方案,只有路径部分:
window.location.pathname.split('/');
原文由 Jose Faeti 发布,翻译遵循 CC BY-SA 3.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
内置
window.location
对象的一个属性将为当前窗口提供该属性。更新,对任何 URL 使用相同的属性:
事实证明,这个模式被标准化为一个名为 URLUtils 的接口,你猜怎么着?现有的
window.location
对象 和锚元素 都实现了该接口。因此,您可以对 任何 URL 使用上述相同的属性——只需使用 URL 创建一个锚点并访问这些属性:
[1]: 浏览器对包含端口的属性的支持不一致,参见:http: //jessepollak.me/chrome-was-wrong-ie-was-right
这适用于最新版本的 Chrome 和 Firefox 。我没有要测试的 Internet Explorer 版本,因此请使用 JSFiddle 示例进行测试。
JSFiddle 示例
还有一个即将到来的
URL
对象,它将为 URL 本身提供这种支持,而无需锚元素。看起来目前没有稳定的浏览器支持它,但据说它会在 Firefox 26 中出现。 当你认为你可能支持它时,在这里试试。