如何获取URL中斜杠后的所有内容?

3
当我访问我的网址时,我的脚本将获取当前的URL并将其存储在一个变量中,保留HTML标签:


var currentURL = (document.URL);

我想要获取我的URL中斜杠后的所有内容,因为在斜杠后面会有一个哈希ID,如下所示:
www.mysite.com/XdAs2 

这是存储在我的变量currentURL中的内容,我想只取其中的XdAs2并将其存储到另一个变量中。此外,我还想知道两件事:

  1. document.URL是获取当前URL的最佳方法吗?是否会在某些浏览器上出现问题?

  2. 如果我尝试使用iframe打开该URL,document.URL仍然有效吗?或者必须有包含URL的地址栏?我真的很感谢对这三个问题的回答。谢谢。


你正在寻找这个正则表达式吗:/(//[^/]+)?/.*/? - Rahul Tripathi
4个回答

6
这里有一些伪代码:

var currentURL = (document.URL); // returns http://myplace.com/abcd
var part = currentURL.split("/")[1];
alert(part); // alerts abcd

基本上:
1)document.URL 在所有主流浏览器中都能正常工作。有关更多信息,请参阅此Mozilla开发者网络文章或此SO问题 2)对于iframe,您需要编写类似于:document.getElementById("iframe_ID").src.toString()的代码。

谢谢,什么是伪代码?你能回答我这些问题吗:document.URL是获取当前URL的最佳方式吗?还是在某些浏览器中会出现问题?如果我尝试使用iframe打开该URL,document.URL是否仍然有效?或者必须有一个包含URL的地址栏存在?我真的很感激对这三个问题的回答。谢谢 - Brandon
更新的答案,请确认。 - Ved
抱歉,我的意思是如果我在iframe中打开一个页面,如果该页面包含上面的“伪代码”,它会获取到URL吗?例如<iframe src="http://www.mysite.com/XdAs2"></iframe>,由该iframe加载的页面中包含的脚本能否从该iframe src获取URL,以便我可以将其拆分并获取斜杠XdAs2后面的哈希ID? - Brandon
不会的,在那种情况下它不会获取URL。 - Ved
你知道在这种情况下获取URL的方法吗? - Brandon

1
使用jQuery,您可以按照以下方式访问当前URL的每一寸: www.mysite.com/XdAs2?x=123 假设您有以下URL: 1- 用jQuery对象获取URL var currentUrl = $(location) 2- 使用以下语法访问所有内容 var result = currentUrl.attr('YOUR_DESIRED_PROPERTY'); 一些常见属性:
- 主机名 => www.mysite.com - 路径名 => XdAs2 - 搜索 => ?x=123 希望这可以帮到您。

谢谢你,Mohammed。如果我尝试使用iframe打开该URL,document.URL仍然有效吗?还是必须有包含URL的地址栏存在? - Brandon

1
如果想要获取主机之后的所有内容,请使用 window.location.pathname

0

继Mohammed的回答之后,您可以在纯JavaScript中执行相同的操作:

var urlPath = location.pathname,
    urlHost = location.hostname;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接