资讯专栏INFORMATION COLUMN

Js控制URL

SHERlocked93 / 3289人阅读

摘要:控制浏览器的对象拥有很多方便的属性用于获取当前的组成部分协议名用户名密码主机名端口号主机名和端口号路径查询串书签名在较新未测试,估计是支持跨域之后的浏览器中,还有协议名主机名和端口号可以使用。将该对象的设置为要解析的。

Js控制URL 浏览器的location对象拥有很多方便的属性用于获取当前URL的组成部分:

location.protocol:协议名

location.username:用户名

location.password:密码

location.hostname:主机名

location.port:端口号

location.host:主机名和端口号

location.pathname:路径

location.search:查询串

location.hash:书签名

在较新(未测试,估计是支持跨域XHR之后的)浏览器中,还有

location.origin:协议名、主机名和端口号
可以使用。

解决方案:

构造一个HTMLAnchorElement(或者HTMLAreaElement)对象。

将该对象的href设置为要解析的URL。

获得对象的相关属性。

HTML




JS

function parseURL(url) {
    var anchor = document.createElement("a")
    var undefined = void 0
    var parts = {
        protocol: undefined,
        host: undefined,
        port: undefined,
        hostname: undefined,
        pathname: undefined,
        search: undefined,
        hash: undefined
    }
    anchor.href = url
    for (var key in parts) {
        parts[key] = anchor[key]
    }
    return parts
}

document.getElementById("parse").onclick = function () {
    var parts = parseURL(document.getElementById("url").value)
    var text = ""
    for (var key in parts) {
        text += key + ": " + parts[key] + "
"
    }
    document.getElementById("result").innerText = text
}
location.origin兼容IE (IE11+才有origin属性)
if (window["context"] == undefined) {  
    if (!window.location.origin) {  
        window.location.origin = window.location.protocol + "//" + window.location.hostname +   
        (window.location.port ? ":" + window.location.port: "");  
    }  
    window["context"] = location.origin+"/V6.0";  
}  

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89296.html

相关文章

  • 《Node.js设计模式》基于回调的异步控制

    摘要:编写异步代码可能是一种不同的体验,尤其是对异步控制流而言。回调函数的准则在编写异步代码时,要记住的第一个规则是在定义回调时不要滥用闭包。为回调创建命名函数,避免使用闭包,并将中间结果作为参数传递。 本系列文章为《Node.js Design Patterns Second Edition》的原文翻译和读书笔记,在GitHub连载更新,同步翻译版链接。 欢迎关注我的专栏,之后的博文将在专...

    Chiclaim 评论0 收藏0
  • Sentry前端部署拓展篇(sourcemap关联、issue关联、release控制

    摘要:本地应用回到前端项目中,在添加对应的,指定版本后,每次上报的异常就会分类到该版本下。管理目前来说,前端项目基本都会压缩混淆代码,这样导致捕捉到的异常堆栈无法理解。下篇打算写一下前端异常监控的分类,也就是需要监控哪些异常,敬请期待 原文首发于我的个人博客: https://lonhon.top/ 之前的《基础篇》主要介绍了Sentry和基本部署流程,在实际使用过程中你会发现Sentr...

    Bamboy 评论0 收藏0
  • 【Chrome扩展开发】定制HTTP请求响应头域

    摘要:关于我的博客掘金专栏路易斯专栏原文链接扩展开发定制请求响应头域本文共字,阅读需分钟。那么,我会放弃吗反向代理显然不会,既然问题出在上,我去掉就行了。然而无论多少次的学习和模仿,最终的目的还是为了使用,故开发一款定制请求的势在必行。 本文首发于《程序员》杂志2017年第9、10、11期,下面的版本又经过进一步的修订。 关于 Github:IHeader 我的博客:louis blog ...

    MadPecker 评论0 收藏0
  • Webpack 项目优化杂记

    摘要:入口文件打包出口地址在中可以配置我们的地址这里你要有一个七牛云的账户。特别像是七牛云这样拥有图片处理引擎的服务商,我们还可以通过来处理上传至的图片。 本项目源码均可在 这里 找到。 之前公司的官网项目静态文件都是放在静态服务器中,这其中的弊端就不赘述了。简单说一下 CDN 的好处: CDN 可以解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就...

    incredible 评论0 收藏0

发表评论

0条评论

SHERlocked93

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<