JavaScript获取当前url路径

1、假设当前页完整地址是:https://www.qmblog.cn:8080/Home/Index?id=2&age=18

//获取当前窗口的Url
var url = window.location.href;
//结果:https://www.qmblog.cn:8080/Home/Index?id=2&age=18

//获取当前窗口的主机名
var host = window.location.host;
//结果:https://www.qmblog.cn:8080

//获取当前窗口的端口
var port = window.location.port;
//结果:8080

//获取当前窗口的路径
var pathname = window.location.pathname;
//结果:/Home/Index

//获取当前文档的Url
var URL = document.URL;
//结果:https://www.qmblog.cn:8080/Home/Index?id=2&age=18

//获取参数
var search = window.location.search;
//结果:?id=2&age=18

2、分隔 url 中的参数

var search = window.location.search;
var age = getSearchString('age', search); //结果:18
var id = getSearchString('id', search); //结果:2
//key(需要检索的键) url(传入的需要分割的url地址,例:?id=2&age=18)
function getSearchString(key, Url) {
    var str = Url;
    str = str.substring(1, str.length); // 获取URL中?之后的字符(去掉第一位的问号)
    // 以&分隔字符串,获得类似name=xiaoli这样的元素数组
    var arr = str.split("&");
    var obj = new Object();

    // 将每一个数组元素以=分隔并赋给obj对象 
    for (var i = 0; i < arr.length; i++) {
        var tmp_arr = arr[i].split("=");
        obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]);
    }
    return obj[key];
}

3、跳出当前窗口

//跳出当前窗口,打开新窗口
window.open("https://www.kshoulu.com");

4、document与window

document 是一个文档对象

window  是一个窗口对象,

一个窗口下可以有多个文档对象。

所以一个窗口下只有一个window.location.href,可能有多个document.URL、document.location.href

window.location.href 和 document.location.href 可以被赋值,然后跳转到其它页面,document.URL只能读不能赋值。

本文转载于网络 如有侵权请联系删除

相关文章

  • 数据结构——查分数组

    大家好,又见面了,我是你们的朋友全栈君。介绍查分数组是一个数据结构。相当于前缀和的逆运算。 查分数组的功能是修改区间,查询点。 修改区间的时间复杂度是O(1). 查询点的时间复杂度是O(n)。若配合树状数组时间复杂度可达到O(logn)。修改区间操作 x位置加上修改量,y+1位置减去修改量。这样就相当于整个区间的元素都修改了。staticvoidupdate(intx,inty,intz){ b[x]+=z; b[y+1]-=z; }复制查询 刚刚修改方便了,但是查询的时候就需要全部都加一遍了。staticintsum(intx){ intans=0; for(inti=1;i<=x;i++)ans+=b[i]; returnans; }复制预处理 b[1]=a[1]; for(inti=2;i<=n;i++)b[i]=a[i]=a[i-1];复制算法思路地推建立查分数组s。使用递推式:c[i]=a[i-1]-a[i]。 将s[left]+k,s[right+1]-k可以实现区间修改的目的。 单点查询:求前缀和。 还原原数组的方式:s[i]+=s[i-1]D

  • Photometric Stereo 光度立体法三维重建

    光度立体法,可以利用多张不同光照的相同机位相机拍摄的图像建模计算出物体表面深度、法向量,本文记录基础理论。 光度立体法光度立体法,即PhotometricStereo,最早是由当时在MIT的人工智能实验室的RobertJ.Woodham教授在1978年左右提出。他在1979年的论文《Photometricstereo:Areflectancemaptechniquefordeterminingsurfaceorientationfromimageintensity》,以及1980年的论文《PhotometricMethodforDeterminingSurfaceOrientationfromMultipleImages》中比较系统的阐述了整套理论框架。实现思路当相机和目标物体相对位置固定不变时,使用不同方向的光源照射同一目标物体,相机可以拍摄到目标物体带有不同明暗分布的图像,再通过求解基于朗伯反射原理的反射方程组,求解目标表面的法向分布或者深度图。为图中像素值产生的过程建立和物体表面属性精确的假设模型,求解低秩矩阵解得物体属性。基本假设基础的光度立体法对成像提出三个基本假设正交投影图

  • 多种方法快速交换两个变量的值

    #使用多种方法快速交换两个变量的值1、利用元组的快速交换变量值 2、引入新的变量来交换 3、使用加减法交换变量值 4、利用元组从一个函数中返回两个不同的值#代码#1.利用元组的快速交换变量值 a=5 b=8 a,b=b,a print(a,b) #2.引入新的变量来交换 c=b b=a a=c print(a,b) #3.使用加减法交换变量值 a=a+b b=a-b a=a-b print(a,b) #4.利用元组从一个函数中返回两个不同的值 defget_error_details(): return(2,'details') errnum,errstr=get_error_details() print(errnum) print(errstr)复制#运行结果85 58 85 2 details复制

  • Go:如何使用书中示例 sim.go v2新版本及如何理解、使用 Go 语言的 mod 机制【视频】

    第一部分:关于设置环境变量设置环境变量$GOPATH、$PATH从官网(https://golang.org/dl/,国内可以从https://studygolang.com/dl下载)下载了Go语言安装包,并安装以后,此时在终端里执行指令:goversion 复制一般都可以显示版本号了。此时编写一个简单的go语言文件,也可以运行。但此时Go语言完全运行所需的环境变量还没有完全准备就绪。一般我们在环境变量中,还需要设置一个名称为GOPATH的用户变量或系统变量,同时还需要将GOPATH/bin添加到变量PATH的路径中。在macOS上,我们可以在~/.bash_profile中设置用户变量,也可以在/etc/profile中设置系统变量。在Windows上,我们可以通过计算机属性->高级属性->设置变量进行设置。$PATH路径的设置与之同理。为什么要设置环境变量?GOPATH变量不设置,不影响运行,它在Go语言安装包默认安装后有一个~/go的默认地址,但GOPATH/bin必须添加到PATH的路径中。这是所有开发者自安装的Go语言第三方类库所生成的工具指令,在系统上能够被查

  • IDEA将Maven项目中指定文件夹下的xml等文件编译进classes

    eclipse下面创建的Maven项目,使用mybatis。eclipse里面能正常启动,在idea中一直卡在maybatis加载位置。1、首先是不报错也没反应。这个时候需要我们重写SqlSessionFactoryBean让错误显示出来。publicclassBeanFactoryextendsSqlSessionFactoryBean{ @Override protectedSqlSessionFactorybuildSqlSessionFactory()throwsIOException{ try{ returnsuper.buildSqlSessionFactory(); }catch(NestedIOExceptione){ e.printStackTrace(); thrownewNestedIOException("Failedtoparsemappingresource:",e.getCause()); } } }复制2、修改applicationContext.xml中的mybatis配置。<beanid="sqlSessionF

  • 自动化接口用例从 1 到 1000 过程中的实践和思考

    顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,主文件是:zentao.py。bugreport是禅道,script是python3+selenium3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。来源:http://www.51testing.com引言  当一个新人刚加入公司的时候,我们通常告诉新人怎么去写一个自动化用例:从工程配置到如何添加接口、如何使用断言,最后到如何将一个用例运行起来。  而在实际工作和业务场景中,我们常常面临着需要编写和组织一堆用例的情况:我们需要编写一个业务下的一系列的自动化接口用例,再把用例放到持续集成中不断运行。面临的问题比单纯让一个用例运行起来复杂的多。  本人加入有赞不到一年,从写下第1个case开始,持续编写和运行了1000多个case,在这过程中有了一些思考。在本文中,和大家探论下如何编写大量自动化接口用例以及保持结果稳定。 一、执行效率  目前使用的测试框架是基于spring,被测接口

  • JDK1.9-常用类System

    版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_42528266/article/details/103308247System类java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:publicstaticlongcurrentTimeMillis():返回以毫秒为单位的当前时间。publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength):将数组中指定的数据拷贝到另一个数组中。3.1currentTimeMillis方法实际上,currentTimeMillis方法就是获取当前系统时间与1970年01月01日00:00点之间的毫秒差值importjava.util.Date; publicclassSystemDemo{ publicstaticvoidmain(String[]arg

  • 重磅 | 推荐一款技术人必备的写作神器 (支持多平台自动同步)

    很多技术人都特别喜欢写技术文章并发布到自己的博客上,写技术文章有两个好处:一个是进行一次技术知识的总结和提高,另一个就是通过技术文章的传播,可以打造自己的影响力。当下,随着自媒体的高速发展,越来越多的技术人为了打造个人的技术影响力,会同时在多个技术平台和自媒体平台发表自己写的技术文章。虽然当下主流的技术平台和自媒体平台都已经支持MarkDown格式进行文章编排,你只需要用MarkDown格式写好技术文章就可以通用的发布到各大平台了。这听上去是不是很美好的,MarkDown虽好但是这里有一个比较麻烦的事就是:如果你需要多平台发布,你仍然需要去各大平台的后台对文章进行「复制——粘贴——发布」这样繁琐的操作。长年累月如此以往,想必你会很厌倦这样的重复劳动。做为一个技术人,当然是能自动化的绝对不手动操作。今天,就给大家推荐一款支持多平台自动同步的写作神器「OpenWrite」。「OpenWrite」是一个最懂你的科技自媒体管理平台,这是由一群来自互联网公司的技术自媒体人搭建的新媒体管理平台。它支持用MarkDown格式对文章进行编排,同时可以将写完的文章一键分发到多个科技平台上。 官网地址:

  • 全面理解HTTP

    URL与URI我们经常接触到的就是URL了,它就是我们访问web的一个字符串地址,那么URI是什么呢?他们是什么关系呢? URL:uniformresourcelocation统一资源定位符 URI:uniformresourceidentifier统一资源标识符 这也就是说,URI是一种资源的标识;而URL也是一种URI,也是一种资源的标识,但它也指明了如何定位Locate到这个资源。 URI是一种抽象的资源标识,既可以是绝对的,也可以是相对的。但是URL是一种URI,它指明了定位的信息,必须是绝对的。 报文-通信的桥梁客户端和服务器端通过相互发送报文进行通信,要深刻理解HTTP协议,就需要理解报文的格式和内容。 报文的组成无论是请求报文还是响应报文都需要有报文首部,当然报文主体并不是必需的。一般来说,请求报文的格式如下:看一下百度网站的请求报文: 简单的报文形式:GET/HTTP/1.1 Host:www.baidu.com Connection:keep-alive Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0... Ac

  • Asp.NET WebApi+Redis实现单用户登录实战演练

    一、课程介绍本次分享课程属于《C#高级编程实战技能开发宝典课程系列》中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集、整理和完善此系列课程! 1.1、本高级系列课程适合人群如下: 1、有一定的NET开发基础并对ASP.NETWebApi、Redis、技术有一定了解和认识。 2、喜欢阿笨的干货分享课程的童鞋们。 1.2、一句话总结今天我们要解决的问题? 我们如何实现系统限制一个账号同一时刻只能一个用户账号登录使用(不能同时登录),即单账号登录功能。 1.3、阿笨给大家两种单用户登录SCO实现方案 1)、单用户登录SCO之独占方式(基于UserIdKey方式)。 2)、单用户登录SCO之强制下线其他用户(基于SessionToken机制)—强烈推荐 。 如果您同样对本次分享《Asp.NETWebApi+Redis实现单用户登录实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。 废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。 二、概念名称含义介绍1、什么是单点登录SSO(SingleSignOne) 2、什么是单

  • UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制

    本篇作为技术分享系列的第二篇,详细讲一下文字的解析和绘制,这部分功能的研究和最终实现由团队共同完成,目前还在寻找更理想的实现方式。首先看一下文字绘制在手绘视频中的应用场景  文字是手绘视频中很重要的表现形式,应用场景很广,比如字幕、旁白和一些重要的文字说明提示。和普通视频,如MV、电影等使用某一种固定字体,如宋体、微软雅黑字体不同的是,在手绘视频中,我们通常会使用一些很有个性化的字体,如毛笔字体、卡通字体和很多手写字体。另一个很大的区别,电影等中的问题,是整体出现的,不存在绘制的过程,所以只需要按照字体显示;而手绘视频中的文字,通常是以手绘的形式展出来的。下面两张图片分别是一个电影截图中的字幕和手绘视频中的一种火柴字体。接下来介绍文字绘制的几种方案  文字的静态显示过程,是通过读取特定字型的字体文件(ttf)中对应文字的矢量路径数据,以显示在屏幕上对应像素上的。对于不同的字型,文字的形状是不一样的,所以对应文字的路径数据也是不同的。因为是矢量路径数据,所以在放大和缩小时,文字才不会失真。  文字的绘制,实际上是把文字对应的某种路径,按照时间和某种顺序描绘出来。下面介绍的几种市面上常见的

  • BA的广度和深度 | TW洞见

    今日洞见文章作者/配图来自ThoughtWorks:亢江妹。本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。BA,或者称业务分析师,是企业数字能力和业务能力之间的沟通桥梁。随着企业数字转型的进一步深化,相信对BA这样的技能需求会越来越多,只是未必都用“BA/业务分析师”这样的Title。ThoughtWorks在创建之初,就有BA这样一个职位。LupiMessenger是我的一个同事,她是ThoughtWorks的第一批BA,到现在为止做了18年,孙女都已经上小学了,我很仰慕。这二十年间变化很大,需求分析方法从最初的敏捷用户故事,演进到现在精益为基础的需求分析方法,BA的技能要求也在不断变化。整理出一个大家都认可的BA技能图谱,几乎是个不可能的任务——即使仅限ThoughtWorks所要求的BA技能(我在ThoughtW

  • Python-面向对象编程

    概述:面向过程:根据业务逻辑从上到下写代码。函数式:将某功能代码封装到函数中,以后便无需重复编写,进调用函数即可。面向对象:对函数进行分类和封装,让开发“更快更好更强”创建类和对象面向对象编程需要类和对象来实现,其实就是对类和对象的使用。类是什么?类就是一个模版,模版里包含多个函数,函数里实现一些功能。对象是什么?对象则是根据模版创建的实例,通过实例对象可以执行类中的函数class是关键字,表示类创建对象,类名称后加括号就是创建对象类中的函数第一个参数必须是self(是函数三大特性之一封装性)类中定义的函数叫方法1 2 3 4 5 6 7 8 9 10 11 12 13 14 15#!/usr/bin/envpython #coding:utf-8 #创建类 class Foo:     #创建类中的函数     def Bar(self):         print "Bar"     def Hello(self,name):         print 'Iam%s' %name #根据类Foo创建obj obj= Foo() #执行Ba

  • 地平线公司发布了中国首款嵌入式人工智能芯片

    据国家集成电路产业投资基金股份有限公司总裁丁文武表示,芯片是中国第一大进口商品,每年的贸易额为2200亿美元左右。不过,在中国人的眼里,芯片这种高端的物件总依赖进口已经习以为常。不过如今,这一现象可能会有所缓解。12月20日,人工智能初创企业地平线一口气发布了两颗中国首款嵌入式人工智能芯片,向资本和公众交上了一份颇有诚意的答卷。这两颗芯片分别为面向智能驾驶的征程(Journey)1.0处理器和面向智能摄像头的旭日(Sunrise)1.0处理器。这是完全由地平线自主研发的人工智能芯片,采用地平线的第一代BPU架构,可实时处理1080p@30视频,每帧中可同时对200个目标进行检测、跟踪、识别,典型功耗1.5W,每帧延时小于30ms。今天同步发布的还有针对智能驾驶、智能城市和智能商业三大应用场景的人工智能解决方案。“今天发布的嵌入式芯片与解决方案,是地平线两年多来立足场景设计研发的成果,也是我们以中国芯打造人工智能中国方案的重要里程碑。我们在算法和芯片多项技术点上有突破性地有特点的创新,”创始人余凯在发布会上介绍说,“与通用芯片的商业模式不同,地平线的芯片更聚焦在针对不同场景下的具体应用,

  • mysql的建表语句_mysql如何查询建表语句

    大家好,又见面了,我是你们的朋友全栈君。MySQL之建表语句mysql安装教程见博客:MySQL7.7.25图文安装教程(Win10) 本篇博客以学生表、课程表以及学生-课程表为例,讲解mysql常用的建表语句。1.学生表Sno(学号)Sname(姓名)Sex(性别)Sage(年龄)Sdept(系)201215121李勇男20CS201215122刘晨女19CS201215123王敏女18MA201215124张立男19IS其中,Sno(学号)为主码。分析:Sno可用varchar()类型,也可以使用int类型,但表中的学号是依次递增的,故用int类型较好,可以实现按规律的增加;Sname是字符串类型,可用varchar()来存储,一般给10个字符就可以;Sex是字符类型,可用char()来存储,由于性别只有男和女,故给1个字符即可;Sage是数字类型,且最大不超过100,故可以用tinyint来存储;Sdept也是字符串型,可用char()来存储,根据表格来看,给4个字符即可。建表语句: 首先为该表创建一个数据库:学生-课程数据库,之后的课程表和学生-课程表也可以放入该数据库内。cr

  • kubernetes基础知识:限制POD和容器运行的CPU、内存

    限制运行内存 https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ 先看一个pod的yaml文件(官方提供) apiVersion:v1 kind:Pod metadata: name:memory-demo namespace:mem-example spec: containers: -name:memory-demo-ctr image:polinux/stress resources: limits: memory:"200Mi" requests: memory:"100Mi" command:["stress"] args:["--vm","1","--vm-bytes","150M","--vm-hang","1"] 复制    限制CPU https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/ 先来看个官方例子 apiVersion:v1 kind:Pod m

  • bzoj 3109: [cqoi2013]新数独

    1#include<cstdio> 2#include<iostream> 3usingnamespacestd; 4intha[10][10],li[10][10],xi[10][10],a[10][10],bh[10][10],bl[10][10],kg; 5charch[5]; 6boolpan(intx,inty,inti) 7{ 8if(ha[x][i]||li[y][i]||xi[(x-1)/3*3+(y-1)/3][i]) 9return0; 10if((y-1)%3!=0&&(bh[x][y]^(i>a[x][y-1]))) 11return0; 12if((x-1)%3!=0&&(bl[x][y]^(i>a[x-1][y]))) 13return0; 14return1; 15} 16voiddfs(intx,inty) 17{ 18//if(a[1][1]==4&&a[1][2]==9&&a[1][3]==1&&a[1][4]==7&&

  • 23种设计模式之责任链模式

    文章目录 概览责任链模式的优缺点责任链模式的结构和实现模式的结构模式的实现 总结 概览 责任链模式(ChainofResponsibilityPattern)为请求创建了一个接收者对象的链。 这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 责任链模式的优缺点 优点 降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构,发送者和接收者也无须拥有对方的明确信息。增强了系统的可扩展性。可以根据需要增加新的请求处理类,满足开闭原则。增强了给对象指派职责的灵活性。当工作流程发生变化,可以动态地改变链内的成员或者调动它们的次序,也可动态地新增或者删除责任。责任链简化了对象之间的连接。每个对象只需保持一个指向其后继者的引用,不需保持其他所有

  • 将Sublime Text 2搭建成一个好用的IDE

    将SublimeText2搭建成一个好用的IDE   说起编辑器,可能大部分人要推荐的是Vim和Emacs,本人用过Vim,功能确实强大,但是不是很习惯,之前一直有朋友推荐SUblimeText2这款编辑器,然后这段时间就试了一下,就深深地喜欢上这款编辑器了,对于类似的编辑器,我用过notepad2、notepad++、Editplus、UltraEdit、Vim、TextPad,都没有觉得哪一款编辑器用得非常上手,直到遇到SublimeText2,之前写Python脚本时,也一直在苦苦寻找一款好用的IDE,用过WingIDE、Ulipad、Pycharm、Eclipse+Pydev、PyScrypter,没有哪款非常中意的,直到遇到了SublimeText2,今天就来讲一下如何将SublimeText2打造成一款好用的IDE,虽然它只是一款编辑器,但是它有丰富的扩展插件,足以让我们把它变成好用的IDE。 一.下载和安装   SublimeText2是一款开源的软件,不需要注册即可使用(虽然没有注册会有弹窗,但是基本不影响使用)。   下载地址:http://www.sublimete

  • 【財務会計】【転載】為替リスク回避のための為替予約と会計処理

    目次 1.はじめに 2.為替リスクのヘッジ方法 3.予約レートの決まり方 (1)直物レートと先物レート (2)先物レート(予約レート)の決まり方 4.為替予約のメリット、デメリット 5. 会計処理 (1)為替レートの種類 (2)外貨建取引の円換算方法 ①取引発生時の為替レート ②換算する為替レートの種類 ③前受金、前渡金がある場合 ④為替予約を締結した場合 (3)期末の処理 6.おわりに 1.はじめに 近年のグローバル化の流れによって、貿易などの国際取引は日に日に多くなっています。それらの取引が外国通貨で行われる場合、そこには為替リスクが潜んでいます。最近の為替相場は変動が激しくなっていますので、リスクは増大傾向にあります。 例えば輸入取引で、外国の会社からある商品を100米ドルで購入する契約を締結したとします。契約日の為替相場が1ドル=100円だとした場合、購入金額は100ドル×100円=10,000円の見込みとなります。ところが、実際の支払日の為替相場が1ドル=120円になれば、購入金額は100ドル×120円=12,000円となり、差額の2000円分利益

  • 2019.12.11. 王庆超 linux

    (1).掌握pwd命令的功能:确定现在所在的工作目录 (2).掌握cd命令的功能:切换当前目录 (3).掌握“cd..”命令:进行上一级目录 (4).掌握“cd~”命令:切换到用户的家目录 (5).掌握“cd”命令:同cd~,也可切换到用户的工作目录 (6).掌握“cd_”命令:切换到用户之前的工作目录 (7).掌握“cd目录名”命令:切换到指定的目录 (1).掌握ls命令的功能:列出当前目录(默认为当前目录)或指定目录中的内容 (2).掌握ls–a命令:列出目录下的所有文件,包括以“.”开头的隐含文件 (4).掌握ls–l命令:列出某个目录中每个文件的详细资料 例如:列出/home/dog目录中所有非隐藏文件的细节的命令 (a).ls–l/home/dog (3)了解s-all命令:同is-a (4)掌握is-/命令:列出某个目录中每一个文件的详细资料。 (a)is-//home/dog 3.使用cp战令复制文件和目录(详见linux系统管p50) (1)掌握cp命令的功能:将文件(可以是多个)复制成一个指定的目标目录中。 (2)掌握cp命令的常用选项 cp源文件目标文件 (cal-

相关推荐

推荐阅读