window.open 在 IE 上,Request.UrlReferrer 為 null

最近同事詢問,使用 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:從零開始的軟體開發生活

請大家繼續支持 ^_^