2

我喜欢将当前地址很好地拆分为 中的部分window.location,但我希望能够采用任意 URL 并按照完全相同的逻辑将其拆分。我不知道如何window.location处理极端情况和罕见情况,所以我想尽可能避免手动执行此操作。由于浏览器已经在当前地址上执行此工作,我希望它包含一个可以对任何地址执行此操作的函数。

如果那里有任何不错的跨浏览器库(可能是 jQuery 插件),我也很想听听它们。

4

2 回答 2

4

您可以在 JavaScript 中创建一个a( HTML Anchor Element ) 元素并指定href属性。然后,您将能够调用与锚元素、hashprotocolhost等关联的属性port...

https://developer.mozilla.org/en-US/docs/DOM/HTMLAnchorElement

于 2012-08-17T15:20:15.597 回答
1

使用 Xander 的答案中的信息,我编写了一个小函数来解析 URL 并返回一个包含所需信息的对象。我想我会在这里分享它:

function parse_url(url)
{
    var e = document.createElement('a');
    e.href = url;

    return {
        'protocol': e.protocol,
        'hostname': e.hostname,
        'host': e.host,
        'port': e.port,
        'pathname': e.pathname,
        'search': e.search,
        'hash': e.hash
    }
}
于 2012-08-18T13:35:04.787 回答