欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何获取浏览器URL中查询字符串的参数

程序员文章站 2022-10-08 20:34:47
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主机名和当前的URL的端口号。本博客首页返回www.cnblogs.com hostname:设置或返 ......

首先要知道location这个对象以及这个对象中的一些属性:

href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/

host:设置或返回主机名和当前的url的端口号。本博客首页返回www.cnblogs.com

hostname:设置或返回当前url的主机名。本博客首页返回www.cnblogs.com

hash:设置或返回从井号(#)开始的url(锚)。本博客首页返回 空

pathname:设置或返回当前url的路径部分。本博客首页返回/wymninja/

port:设置或返回当前url的端口号。本博客首页返回 空

protocol:设置或返回当前url的协议。本博客首页返回 http:

search:设置或返回从问号 (?) 开始的 url(查询部分)

location对象属性图示:图片来自慕课网

如何获取浏览器URL中查询字符串的参数

location的href属性存放的是文档的完整 url,其他属性则分别描述了 url 的各个部分。这些属性与 anchor 对象(或 area 对象)的 url 属性非常相似。当一个 location 对象被转换成字符串,href 属性的值被返回。这意味着你可以使用表达式 location 来替代 location.href。不过 anchor 对象表示的是文档中的超链接,location 对象表示的却是浏览器当前显示的文档的 url(或位置)

var s = location.tostring();
console.log(s);
#result
//http://www.cnblogs.com/wymninja/

 

location对象的这些属性都是可读可写的,如果改变了文档的location.href,则浏览器会载入新的页面。同样如果改变了location.hash,则页面会跳转到新的锚点,但此时页面不会重载。

location对象还有三个方法:assign()、reload()、replace()

assign():加载新的文档

reload():可以重新装载当前文档

replace():可以装载一个新文档而无须为它创建一个新的历史记录。也就是说,在浏览器的历史列表中,新文档将替换当前文档。这样就不能通过【返回】按钮返回当前文档了。

注意:

不要混淆window对象的location属性和document对象的location对象。前者引用一个location对象,后者只是一个 只读字符串,并不具有location对象的任何特性。document.location与document.url是同义的。但是,当存在服务器重定 向时,document.location包含的是已经装载的url,而location.href包含的则是原始请求的文档的url。

所以要获取浏览器url中查询字符串的参数。也就是location.search部分。以慕课网图片为例就是?courseid = 8&cahpterid = 86中的8和86!!!!然后就利用如下代码:

function getquery(name){
  var reg = new regexp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);//从?之后开始匹配如getquery(courseid)返回一个数组["courseid=8","","8","&",index:0,input:"courseid=8"]
   if (r!=null) return unescape(r[2]); return null;
}

其中:

对match不清楚可查阅我的博客javascript string对象

unescape 对参数进行解码,如空格解码为20%。

原文:https://www.cnblogs.com/wymninja/p/5716317.html