我只想获取网站URL。不是从链接获取的URL。在页面加载时,我需要能够获取网站的完整、当前URL,并将其设置为一个变量,以便根据需要进行处理。
当前回答
Use:
window.location.href
正如评论中所指出的,下面这行行是有效的,但它对Firefox来说是错误的。
document.URL
请参阅DOMString类型的URL,只读。
其他回答
获取当前位置对象的方法是window.location。
将其与document.location进行比较,后者最初仅以字符串形式返回当前URL。可能是为了避免混淆,document.location被document.URL替换。
而且,所有现代浏览器都会将document.location映射到window.location。
实际上,为了跨浏览器安全,应该使用window.location而不是document.location。
URL信息访问
JavaScript为您提供了许多方法来检索和更改显示在浏览器地址栏中的当前URL。所有这些方法都使用Location对象,这是Window对象的属性。您可以通过读取window.Location来读取当前Location对象:
var currentLocation = window.location;
基本URL结构
<protocol>//<hostname>:<port>/<pathname><search><hash>
protocol:指定用于访问Internet上资源的协议名称。(HTTP(不带SSL)或HTTPS(带SSL))hostname:主机名指定拥有资源的主机。例如,www.stackeoverflow.com。服务器使用主机名提供服务。端口:用于识别Internet或其他网络消息到达服务器时要转发到的特定进程的端口号。路径名:路径提供有关Web客户端希望访问的主机内特定资源的信息。例如,/index.html。搜索:路径组件后面有一个查询字符串,它提供了资源可以用于某些目的的信息字符串(例如,作为搜索的参数或作为要处理的数据)。hash:URL的锚定部分,包括哈希符号(#)。
使用这些Location对象财产,您可以访问所有这些URL组件以及它们可以设置或返回的内容:
href-整个URLprotocol-URL的协议host—URL的主机名和端口hostname—URL的主机名port-服务器用于URL的端口号pathname—URL的路径名search-URL的查询部分hash-URL的锚定部分origin-window.location.protocol+'//'+window.location.host
我希望你得到了答案。。
// http://127.0.0.1:8000/projects/page/2?name=jake&age=34
let url = new URL(window.location.href);
/*
hash: ""
host: "127.0.0.1:8000"
hostname: "127.0.0.1"
href: "http://127.0.0.1:8000/projects/page/2?username=jake&age=34"
origin: "http://127.0.0.1:8000"
password: ""
pathname: "/projects/page/2"
port: "8000"
protocol: "http:"
search: "?name=jake&age=34"
username: ""
*/
url.searchParams.get('name')
// jake
url.searchParams.get('age')
// 34
url.searchParams.get('gender')
// null
Nikhil Agrawal的回答很好,只是在这里添加了一个小示例,您可以在控制台中看到不同的组件:
如果您想要不带路径或查询参数的基本URL(例如,对其执行AJAX请求以在开发/登台和生产服务器上运行),window.location.origin是最好的,因为它保留了协议和可选端口(在Django开发中,有时会有一个非标准端口,如果您只使用主机名等,就会中断它)
您可以通过location.href获取当前页面的完整链接要获取当前控制器的链接,请使用:
location.href.substring(0, location.href.lastIndexOf('/'));
推荐文章
- JavaScript变量声明在循环外还是循环内?
- 元素在“for(…in…)”循环中排序
- 在哪里放置JavaScript在HTML文件?
- 什么时候.then(success, fail)被认为是承诺的反模式?
- 从浏览器下载JSON对象作为文件
- .append(), prepend(), .after()和.before()
- throw Error('msg') vs throw new Error('msg')
- 是否有一种内置的方法来循环遍历对象的属性?
- 如何限制谷歌自动完成结果的城市和国家
- 如何在猫鼬排序?
- 清除javascript控制台在谷歌Chrome
- 在范围内获取所有变量
- 我如何使用多个引用的元素与挂钩数组?
- 组件中useState对状态更新器的多次调用会导致多次重渲染
- 什么是useState()在React?