用javascript获取当前的URL?

Get the current URL with JavaScript?

我只想得到网站的网址。不是从链接中获取的URL。在页面加载时,我需要能够抓取网站的完整、当前的URL,并将其设置为一个变量,以便按我的意愿进行操作。


用途:

1
window.location.href

正如注释中所指出的,下面的行可以工作,但它是针对Firefox的。

1
document.URL;

请参阅domstring类型的url,readonly。


URL信息访问

javascript为您提供了许多方法来检索和更改当前的URL,这些URL显示在浏览器的地址栏中。所有这些方法都使用Location对象,它是Window对象的属性。您可以创建一个新的Location对象,其当前URL如下:

1
var currentLocation = window.location;

基本URL结构

1
<protocol>//<hostname>:<port>/<pathname><search><hash>
  • 协议:指定用于访问Internet上资源的协议名称。(HTTP(不带SSL)或HTTPS(带SSL))

  • host name:host name指定拥有资源的主机。例如,www.stackoverflow.com。服务器使用主机名提供服务。

  • 端口:一个端口号,用于识别一个特定的进程,当Internet或其他网络消息到达服务器时,它将被转发到该进程。

  • 路径名:该路径提供有关Web客户端要访问的主机内特定资源的信息。例如,/index.html

  • 查询:查询字符串跟随路径组件,并提供资源可用于某些目的的信息字符串(例如,作为搜索的参数或作为要处理的数据)。

  • 哈希:URL的锚定部分,包括哈希符号()。

通过这些Location对象属性,您可以访问所有这些URL组件以及它们可以设置或返回的内容:

  • href-整个URL
  • 协议-URL的协议
  • 主机-URL的主机名和端口
  • hostname-URL的主机名
  • 端口-服务器用于URL的端口号
  • 路径名-URL的路径名
  • 搜索-URL的查询部分
  • hash-URL的锚定部分

我希望你能得到答案。


使用window.location对与当前帧关联的位置对象进行读写访问。如果只想将地址作为只读字符串获取,可以使用document.URL,它应该包含与window.location.href相同的值。


获取当前网页的URL:

1
window.location.href


要获取路径,可以使用:

1
2
3
console.log('document.location', document.location.href);
console.log('location.pathname',  window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL


打开开发人员工具,在控制台中键入以下内容,然后按Enter键。

1
window.location

例:下面是当前页面上结果的屏幕截图。

enter image description here

从这里拿你需要的东西。:)


用途:window.location.href

如上所述,在更新window.location时,document.URL不更新。参见MSDN。


好的,使用纯JavaScript很容易获得当前页面的完整URL。例如,在此页上尝试此代码:

1
2
3
window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"

The window.location.href property returns the URL of the current page.

1
document.getElementById("root").innerHTML ="The full URL of this page is:" + window.location.href;
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html>
<html>

<body>
  JavaScript
  The window.location.href
  <p id="root">
</p>
</body>

</html>

提到这些也不赖:

如果需要相对路径,只需使用window.location.pathname

如果您想知道主机名,可以使用window.location.hostname

如果需要单独获取协议,只需执行window.location.protocol

另外,如果页面上有hash标签,您可以这样得到:window.location.hash标签。

所以window.locatation.href一次处理完所有的…基本上:

1
2
window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
    //true

同时使用window,如果已经在窗口范围内,则无需使用。

因此,在这种情况下,您可以使用:

1
2
3
4
5
6
7
8
9
location.protocol

location.hostname

location.pathname

location.hash

location.href

Get the current URL with JavaScript


  • 使用window.location.href获取完整的URL。
  • 使用window.location.pathname获取离开主机的URL。


您可以使用以下方法获取具有哈希标记的当前URL位置:

JavaScript:

1
2
3
4
5
 // Using href
 var URL = window.location.href;

 // Using path
 var URL = window.location.pathname;

jQuery:

1
$(location).attr('href');

1
2
3
4
5
6
var currentPageUrlIs ="";
if (typeof this.href !="undefined") {
       currentPageUrlIs = this.href.toString().toLowerCase();
}else{
       currentPageUrlIs = document.location.toString().toLowerCase();
}

上面的代码也可以帮助某人


添加结果以供快速参考

window.location;

1
2
3
4
 Location {href:"https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
 ancestorOrigins: DOMStringList,
 origin:"https://stackoverflow.com",
 replace: ?, assign: ?,&nbsp;}

document.location

1
2
3
4
5
  Location {href:"https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
 origin:"https://stackoverflow.com",
 replace: ?, assign: ?
,&nbsp;}

window.location.pathname

1
"/questions/1034621/get-the-current-url-with-javascript"

window.location.href

1
"https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript"

location.hostname

1
"stackoverflow.com"

对于包含查询字符串的完整URL:

1
document.location.toString().toLowerCase();

对于主机URL:

1
window.location


在JSTL中,我们可以使用pageContext.request.contextPath访问当前的URL路径。如果要执行Ajax调用,请使用以下URL。

1
url ="${pageContext.request.contextPath}" +"/controller/path"

示例:对于http://stackoverflow.com/posts/36577223页,这将给出http://stackoverflow.com/controller/path


获取当前位置对象的方法是window.location

将其与document.location进行比较,后者最初只是以字符串形式返回当前的URL。为了避免混淆,用document.URL代替了document.location

而且,所有的现代浏览器都将document.location映射到window.location

实际上,为了跨浏览器安全,您应该使用window.location,而不是document.location


您可以通过location.href获得当前页面的完整链接。要获取当前控制器的链接,请使用:

1
location.href.substring(0, location.href.lastIndexOf('/'));

1
   location.origin+location.pathname+location.search+location.hash;

使用javascript获取当前URL:

  • window.location.toString();

  • window.location.href


如果您引用的是具有ID的特定链接,则此代码可以帮助您。

1
2
3
4
5
6
7
8
9
10
11
12
13
$(".disapprove").click(function(){
                      var id = $(this).attr("id");

                      $.ajax({
                          url:"<?php echo base_url('index.php/sample/page/"+id+"')?>",
                          type:"post",
                          success:function()
                          {
                            alert("The Request has been Disapproved");
                            window.location.replace("http://localhost/sample/page/"+id+"");
                          }
                      });
                });

我在这里使用Ajax提交一个ID,并使用window.location.replace重定向页面。如前所述,只需添加属性id=""


首先检查页面是否在浏览器中完全加载,然后调用一个函数,该函数接受URL、URL变量并在控制台上打印,

1
2
3
4
5
6
7
8
$(window).load(function(){
   var url = window.location.href.toString();
   var URL = document.URL;
   var wayThreeUsingJQuery = $(location).attr('href');
   console.log(url);
   console.log(URL);
   console.log(wayThreeUsingJQuery );
});