zoukankan      html  css  js  c++  java
  • 获取页面来源URL ,源页面URL,Request.UrlReferrer为空的问题

           最近遇到获取源页面URL遇到问题,整理了一下

    获取页面来源URL,对于访问来源统计,防盗链等地方,用处很大。一般我们用 Request.UrlReferrer 方法获取源页面URL但是对于页面通过IE

    1. window.open,

    2. window.location.href,

    3.location.replace(),等方式跳转时,获取为空值,只有在<a href=>有效。据说 IE浏览器referrer清空了。所以获取不到

    解决方案

    1. 对于window.location.href,location.replace()跳转方式,思路是这样,通过js创建一个a标签代替跳转

    如代码(源页面代码)

      Javascript代码

    function Redirect(url) {
        //获取浏览器用户代理
        var userAgent = navigator.userAgent.toLowerCase();
        var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
        var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
        //如果是IE浏览器
        if (is_ie) 
        {
            //创建A标签
            var referLink = document.createElement('a');
            referLink.href = url;
            document.body.appendChild(referLink);
            //模拟点击
            referLink.click();
        }
        else 
        {
            //其他浏览器不变
            location.href = url;
        }
      } 

    HTML调用

    <a onclick="Redirect('Default1.aspx')"> 自改代码 </a>

    (目标页面代码)   

       获取可以直接用Request.UrlReferrer 得到源页面

    2.当window.open时,因为window.open是唯一可以打开一个没工具栏,状态栏的页面的方法,所以某些情况下是不可替代的
       (源页面代码)

     Javascript代码

    function Redirect(url)
       {
         //打开一个无状态栏的页面
         window.open(url,'','toolbar=no, menubar=no,  scrollbars=yes, resizable=yes, location=no, status=no');
       }

    HTML调用

      

    <a onclick="Redirect('Default1.aspx')"> 自改代码 </a>

     (目标页面代码)

    function getFrom()    
            {    
                //获取源页面地址;window.opener 为获取window.opener源页面的BOM对象
                var url =window.opener.location;  
                //获取本页面地址
                var localUrl=window.location.href.toString();  
                window.alert("来源地址:"+url+"   本地址:"+localUrl); 
           }  
  • 相关阅读:
    syslog日志格式解析
    Linux打补丁的一个简单例子
    Linux打补丁的一些问题
    安全漏洞整改解决方案(很不错网络文章)
    Linux系统启动过程
    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息
    主机名/etc/hosts文件的作用
    Linux中如何配置IP相关文件
    /bin、/sbin、/usr/bin、/usr/sbin目录Linux执行文档的区别
    日志生成控制文件syslog.conf
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2937206.html
Copyright © 2011-2022 走看看