检测用户是否在新标签页中打开链接并重定向到新网址

时间:2016-07-29 13:20:49

标签: javascript c# jquery asp.net

我正在尝试做一些我不确定是否可能的事情?

用户打开网站。如果他们尝试在新标签中重新打开链接,我需要将它们重定向到另一个页面。

我已尝试使用c#查看是否可以检测到网页重新加载。这是有效的,但是如果我因为某种原因将我的代码放入页面加载事件中它会运行两次,并且无论它们是第一次打开还是在新选项卡中打开,它都会重定向它们。我只需要打开一个新标签即可。

我的代码:

bool IsPageRefresh = false;
if (!IsPostBack)
{
  ViewState["ViewStateId"] = System.Guid.NewGuid().ToString();
  Session["SessionId"] = ViewState["ViewStateId"].ToString();
}
else
{
  if (ViewState["ViewStateId"].ToString() != Session["SessionID"].ToString()) ;
  {
    IsPageRefresh = true;
    if (IsPageRefresh == true)
    {
      Response.Redirect("~/Pages/EstimateList.aspx", true);
    }
  }
  Session["SessionId"] = System.Guid.NewGuid().ToString();
  ViewState["ViewStateId"] = Session["SessionId"].ToString();
}

我需要使用JavascriptjQuery来执行此操作吗?我对JavascriptjQuery非常陌生。

2 个答案:

答案 0 :(得分:1)

您可以使用Cookie。当用户首次打开页面时,您向计算机发送一个cookie PageOpened=true,当用户在新标签中打开它时,检查是否有cookie with PageOpened=true,如果有,请打开您的其他链接浏览器。

您可以在第一个网站关闭或用户打开新标签等时为您的Cookie提供时间限制或销毁它们。

我无法为您提供代码,因为我从未使用过网络上的c#,但这可以让您了解解决方案的可能路径。

P.S。:作为一个用户,我也觉得这很烦人,但那是你的电话。

答案 1 :(得分:0)

你可以试试这个

created_ts

因为在每个新选项卡上单击asp将其理解为新请求。你应该使用cookies来检查isPageRefresh如果是错误的重定向或使用没有重定向效果的全局变量,如缓存变量值