js document.referrer/domain/location获取前一页、当前页网址(地址)

亮术网 2020-06-06 本网原创

在网页设计过程中,无论前台还是后台都会有获取前一页或当前页网址的时候,后台获取用后编程语言(如C#、PHP),前台获取就只能用javascript脚本。js获取上一页网址不是每次都能获取到,只有存在上一页的时候才能获取到,也就是当前页是点击网站上的某一个链接打开时才能获取到,如果直接在浏览器地址栏输入网址打开的网页,是不能获取上一页的地址的。

javascript获取上一页网址用document.referrer,而获取当前页网址用document.location,另外,用document.domain可以直接获取到当前页的域名,这些获取方法分别举例如下。

 

一、js document.referrer获取前一页网址(地址)

javascript代码:

<script type="text/javascript">
  function GetReferrer() {
    var preUrl = document.referrer;
    if (preUrl == null)
      return "前一页网址为空";
     else
      return preUrl;
  }
  </script>

以上获取前一页网址的代码直接封装成了一个方法,如果获取到,则返回上一页的网址;如果没有获取到,则返回提示文字,当然也可以返回空。

 

二、js document.domain当前域名

javascript代码:

function GetDomain() {
    var domain = document.domain;
    if (domain == null)
      return "获取域名失败";
    else
      return domain;
  }

这个方法获取当前页域名几乎不会失败,除非代码有错误,或者发生异常。只获取域名,不获取网页文件的路径,如果在本地调试,只获取localhost。

 

三、js 获取前一页域名

javascript代码:

function GetReferrerDomain() {
    var preUrl = document.referrer;
    if (preUrl == null) {
      return "获取前一页域名失败";
    }
    else {
        return preUrl.split('/')[2];//把前一页网址用斜杠拆分为数组,第三个元素就是域名
      }
    }

function GetReferrerDomain() {
    var preUrl = document.referrer;
    if (preUrl == null) {
       return "获取前一页域名失败";
    }
    else {
      var a = document.createElement('a');//创建一个超链接元素 a
      a.href = preUrl;
      return a.hostname;//返回 a 的主机名,即域名
    }
  }

 

四、js document.location获取当前页网址(地址)

javascript代码:

function GetCurrentUrl() {
    var url = document.location.href;
    if (url == null)
      return "";
    else
      return url;
  }

如果获取到当前页地址,则返回该地址;如果没有获取到当前页地址,则返回空,当然,这种可能几乎不会出现。