zoukankan      html  css  js  c++  java
  • 如何获取浏览器URL中查询字符串的参数?

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

    想要知道怎样解决这个问题,首先我们先认识一下Location对象

    Location对象包含了当前页面与位置(url)相关的信息

    URL示例:http://www.baidu.com:80/news/index.aspx?id=1&name=location#top

    Location对象共定义了8个属性

    href:声明了当前显示文档的完整的URL

    protocol:声明URL的协议部分,包括后缀的冒号,例如http:

    host:声明当前URL的主机名和端口号(是hostname和port的合集),例如www.baidu.com:80

    hostname:声明当前URL的主机名,例如www.baidu.com

    port:声明当前URL的端口部分,例如80

    pathname:声明当前URL的路径部分,例如news/index.aspx

    search:声明当前URL的查询部分,例如?id=1&name=localhost

    hash:声明当前URL的锚的部分,例如#top,指定在文档中的锚记的名称

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

    想必大家会想,这个与link对象的url属性类似啊,不过link对象表示的是文档中的超链接,而Location对象表示的是浏览器当前显示文档的url。

    当然,Location对象还有两个方法:reload()和replace()

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

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

    通过将url字符串信息赋值给窗口的location属性来装载新文档,可以实现返回浏览。

    对那些使用了框架而且显示多个临时也的网站来说,replace()方法比较有用,这样临时页面都不被存储在历史列表中。

    注意:

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

    什么是查询字符串?就是Location对象的search属性的值,在这里指?id=1&name=location

    那么用Locaton对象结合String对象的方法怎么获取呢?可以用下面这个函数获取:

    function getQuery(name)

      {

      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");

      var r = window.location.search.substr(1).match(reg);

      if (r!=null) return unescape(r[2]); return null;

      }

    参考网址:http://www.myexception.cn/javascript/1617241.html

  • 相关阅读:
    【NOIP 2003】 加分二叉树
    【POJ 1655】 Balancing Act
    【HDU 3613】Best Reward
    【POJ 3461】 Oulipo
    【POJ 2752】 Seek the Name, Seek the Fame
    【POJ 1961】 Period
    【POJ 2406】 Power Strings
    BZOJ3028 食物(生成函数)
    BZOJ5372 PKUSC2018神仙的游戏(NTT)
    BZOJ4836 二元运算(分治FFT)
  • 原文地址:https://www.cnblogs.com/muqiangwei/p/5509253.html
Copyright © 2011-2022 走看看