• 获取页面来源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); 
           }  
  • 相关阅读:
    CSUSTOJ-伊井野弥子是风纪委员(简单BFS)
    CSUSTOJ-石上优不想留级(一维坐标三分及思维解法)
    CSUSTOJ-哈希的纸团(mid思维)
    CSUSTOJ-辉夜大小姐想被猜中(简单暴力)
    CSUSTOJ-藤原书记想要探病(简单矩阵快速幂)
    CSUSTOJ-石上优想要逃离(STL+思维暴力)
    CSUSTOJ-白银御行想展示(思维题)
    CSUSTOJ-藤原书记的佩斯(简单数学)
    CSUSTOJ-白银探病篇(简单思维)
    Odoo发邮件被服务器退回
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2937206.html
Copyright © 2020-2023  润新知