如何使用参数检索整个URL?

son*_*fon 9 javascript

我需要使用参数作为字符串检索整个URL.例如,我需要检索以下URL:

http://www.keytometals.com/page.aspx?ID=CheckArticle&site=kts&LN=EN&NM=349
Run Code Online (Sandbox Code Playgroud)

我试过用:

document.location.href,
document.URL,
window.location.href
Run Code Online (Sandbox Code Playgroud)

但它只检索URL的一部分:

http://www.keytometals.com/page.aspx
Run Code Online (Sandbox Code Playgroud)

如何获取包含当前URL及其参数的字符串?

一个更新:我用过

window.content.document.location.href
Run Code Online (Sandbox Code Playgroud)

我有以下网址:

http://www.keytometals.com/page.aspx?ID=CheckArticle
Run Code Online (Sandbox Code Playgroud)

不幸的是,它仍然是URL的一部分.有人可以帮助我如何将整个URL作为字符串?

谢谢!

vcs*_*nes 5

您应该使用window.location.href整个 URL(包括查询字符串)。

查看Mozilla 的文档以获取更多信息和其他属性。

这是另一篇关于如何在 JavaScript 中解析查询字符串的StackOverflow 好文章。


Wil*_*tin 4

你只需要简单的document.location——这将包括一切。您需要编写自己的代码来将其拆分为 ? 仅获取查询字符串,然后将其拆分为每个 & 处的名称/值对。

编辑:

其实你location.search也可以用。这是我为此编写的一个片段:

function loadQueryString(){ 
    var parameters = {}; 
    var searchString = location.search.substr(1); 
    var pairs = searchString.split("&"); 
    var parts;
    for(i = 0; i < pairs.length; i++){
        parts = pairs[i].split("=");
        var name = parts[0];
        var data = decodeURI(parts[1]);
        parameters[name] = data;
    }
    return parameters;
}

params = loadQueryString();
Run Code Online (Sandbox Code Playgroud)