default.aspx 中 
HTML代码 <a href="default2.aspx" target="_blank" >default2</a>
这里是打开一个新窗口
在default2.aspx cs文件中的代码取Request.UrlReferrerIE浏览器Request.UrlReferrer为nullFirefox,谷歌等浏览器取到了default.aspx页面的地址不兼容浏览器有什么方法可以解决吗,因为是打开新窗口了,我想都取到得是NULL

解决方案 »

  1.   

    Request.ServerVariables("HTTP_REFERER")
    上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
    如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。
    点击刷新按钮不会改变Request.UrlReferrer 
      

  2.   

    1.      首先在Page_load中获得并储存该信息Page_load(object obj,EventArgs e)
                 {
                         if(!IsPostBack)
                         {
                             if(Request.UrlReferrer!=null)   // 
                             {
                                                           ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
                             }
                         }
                 }l        页面回发后会改变Request.UrlReferrer,将其指向当前页面,所以需要进行判断:只有在第一次请求页面的时候才储存该信息l        因为可能“上一次”的url不存在,所以需要进行判断,只有在Request.UrlReferrer存在的情况下才进行储存
                 2.      然后在返回函数中使用该信息void Return(){    if(ViewState["UrlReferrer"]!=null)        Response.Redirect(ViewState["UrlReferrer"].ToString();}在使用Request.UrlReferrer时还要注意: 
    1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
    2.   如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则    Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息   
    3. 点击刷新按钮不会改变Request.UrlReferrer 
      

  3.   

    可能我的问题没有说清楚吧我再重复说一次default.aspx 中 
    HTML源代码中<a href="default2.aspx" target="_blank" >default2 </a> 你点击default2链接,打开一个新的default2.aspx页面(注意这里“_blank”属性)
    这里打开的是一个新窗口 
    在default2.aspx cs文件中的代码取Request.UrlReferrer 
    default2.aspx运行结果根据浏览器的不同得到的结果页不一样
    这个程序在IE里面运行   Request.UrlReferrer==null在Firefox,谷歌等浏览器里面运行,Request.UrlReferrer="default.aspx"
     难道Request.UrlReferrer不兼容浏览器?有什么方法可以解决吗,因为是打开新窗口了,我想都取到的是NULL
      

  4.   

    代理可能修改或删除HTTP通信中的referrer信息,杀毒软件的隐私保护策略可能删除referrer信息(例如Norton),甚至浏览器可以选择不实现这个功能。所以,你的应用不应该依赖于这个属性,只能用它来做一些辅助性判断。
      

  5.   

    说过了javascript可在判断不同的浏览器嘛,可以解决浏览器兼容问题.
      

  6.   


    没有道理,Request.UrlReferrer的取值在IIS服务端运行,与ie无关
    所以不管你什么的ie ,Request.UrlReferrer的返回值一样
    不知道,你在其他浏览器上怎么看到了不同的值
    建议跟踪调试你的代码,
      

  7.   

    如果深一点讨论
    贴出Request.UrlReferrer的代码写在那里来讨论
      

  8.   

    可以参考一下:
    什么情况下HttpContext.Current.Request.UrlReferrer为空 http://www.cnblogs.com/DavidFan/archive/2007/05/17/750154.html