最近同事詢問,使用 IE 時,當別系統 window.open 開啟我們的系統。
在 Page_Load 中取得的 Request.UrlReferrer 為 null。
可是如果使用Chrome 就取得到值。
在 WebForm1 上放一個Button 及 一個 link ,
<button id="btnOpenWin" onclick="window.open('WebForm2.aspx');">Open Web2</button>
<a href="WebForm2.aspx" target="_blank">Open Web2 Http</a>
WebForm2 在 Page_Load 取得 Request.UrlReferrer 出來顯示
protected void Page_Load(object sender, EventArgs e)
{
var urlReferrer = Request.UrlReferrer;
if (urlReferrer == null)
{
Response.Write("UrlReferrer is null");
}
else
{
Response.Write(urlReferrer.ToString());
}
}
以 Chrome 測試如下,
window.open 會另開一個 tab,Request.UrlReferrer 有值, link 也是另開一個 tab,Request.UrlReferrer 有值
以 IE 測試如下,
window.open 會開啟新的視窗,Request.UrlReferrer 為 null
link 也是開啟新的視窗,Request.UrlReferrer 有值
所以如果想要讓別的 Page 取得 Request.UrlReferrer 的話,
請使用 link 的方式哦!
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^