使用JavaScript获取当前网址?

时间:2009-06-23 19:26:46

标签: javascript url

我想要的只是获取网站网址。不是从链接中获取的URL。在页面加载中,我需要能够获取网站的完整当前URL并将其设置为变量以便随意使用。

25 个答案:

答案 0 :(得分:3398)

使用:

window.location.href 

正如评论中所指出的那样,下面这一行有效,但它对Firefox来说是错误的。

document.URL;

请参阅 URL of type DOMString, readonly

答案 1 :(得分:595)

网址信息访问

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

var currentLocation = window.location;

基本网址结构

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

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

  • port:用于识别Internet或其他网络邮件到达服务器时要转发的特定进程的端口号。

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

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

  • 哈希:网址的锚点部分包含井号(#)。

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

  • href - 整个网址
  • 协议 - 网址
  • 的协议
  • 主机 - 网址的主机名和端口
  • 主机名 - 网址的主机名
  • 端口 - 服务器用于网址的端口号
  • 路径名 - 网址的路径名
  • 搜索 - 网址的查询部分
  • 哈希 - 网址
  • 的锚点部分

我希望你得到答案..

答案 2 :(得分:313)

使用window.location对与当前帧关联的location object进行读写访问。如果您只想将地址作为只读字符串,则可以使用document.URL,其中应包含与window.location.href相同的值。

答案 3 :(得分:254)

获取当前页面网址:

window.location.href

答案 4 :(得分:36)

要获取路径,您可以使用:

&#13;
&#13;
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
&#13;
&#13;
&#13;

答案 5 :(得分:32)

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

window.location

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

enter image description here

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

答案 6 :(得分:27)

使用:window.location.href

如上所述,document.URL 在更新window.location时无法更新。请参阅MDN

答案 7 :(得分:25)

好的,使用纯JavaScript可以轻松获取当前页面的完整网址。例如,请在此页面上尝试此代码:

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

window.location.href属性返回当前页面的URL。

document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>

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

</html>

也可以提到这些:

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

如果您想获取主机名,可以使用window.location.hostname;

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

此外,如果您的信息页包含hash标记,则可以这样:window.location.hash

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

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

如果已经在窗口范围内,也没有必要使用window ...

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

location.protocol

location.hostname

location.pathname

location.hash

location.href

Get the current URL with JavaScript

答案 8 :(得分:19)

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

答案 9 :(得分:15)

您可以{/ 3}}使用:

<强> JavaScript的:

 // Using href
 var URL = window.location.href;

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

<强>的jQuery

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

答案 10 :(得分:10)

var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
       currentPageUrlIs = this.href.toString().toLowerCase(); 
}else{ 
       currentPageUrlIs = document.location.toString().toLowerCase();
}

以上代码也可以帮助某人

答案 11 :(得分:8)

添加结果以便快速参考

  

window.location的;

 Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
 ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ, …}
  

document.location

  Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript", 
ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ
, …}
  

window.location.pathname

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

window.location.href

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

location.hostname

"stackoverflow.com"

答案 12 :(得分:7)

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

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

对于主机网址:

window.location

答案 13 :(得分:4)

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

将此与document.location进行比较,document.URL最初仅将当前网址作为字符串返回。可能为避免混淆,document.location已替换为window.location

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

实际上,对于跨浏览器的安全性,您应该使用{{1}}而不是{{1}}。

答案 14 :(得分:4)

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

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

示例:对于页面http://stackoverflow.com/posts/36577223,这将提供http://stackoverflow.com/controller/path

答案 15 :(得分:3)

对于那些想要实际URL对象的人,可能是将URL作为参数的实用程序:

Sprite

https://developer.mozilla.org/en-US/docs/Web/API/URL

答案 16 :(得分:2)

您有多种方法可以做到这一点。

1:

location.href;

2:

document.URL;

3:

document.documentURI;

答案 17 :(得分:2)

使用这个:

var url = window.location.href;

console.log(url);

答案 18 :(得分:0)

如果您指的是具有 id 的特定链接,则此代码可以为您提供帮助。

$(".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=""

答案 19 :(得分:0)

使用JavaScript获取当前网址

  
      
  • window.location.toString();

  •   
  • window.location.href

  •   

答案 20 :(得分:0)

Nikhil Agrawal的答案很好,只需在此处添加一个小示例,您就可以在控制台中查看正在运行的不同组件:

enter image description here

如果您希望不带路径或查询参数的基本URL(例如,针对AJAX请求在开发/登台和生产服务器上都可以使用),window.location.origin最好,因为它既保留协议又可选端口(在Django开发中,有时您有一个非标准端口,如果您仅使用主机名等,则该端口会中断)。

答案 21 :(得分:0)

尝试

location+''

let url = location+'';

console.log(url);

答案 22 :(得分:0)

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

答案 23 :(得分:0)

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

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

答案 24 :(得分:-2)

首先检查页面是否已完全加载

browser,window.location.toString();

window.location.href

然后调用一个函数,该函数需要url,URL变量并在控制台上打印,

$(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 );
});