【问题标题】:Alert user before navigating to external site URL ASP.NET在导航到外部站点 URL ASP.NET 之前提醒用户
【发布时间】:2023-03-25 10:02:02
【问题描述】:
处理一个主要有几个母版页的 ASP.NET 应用程序,这些母版页控制应用程序中的其余页面和用户控件。我们收到来自客户的请求,希望在用户尝试导航到任何其他外部站点时发出警告。例如,如果我们的应用程序是 www.abc.com,如果它们位于 abc.com/user、abc.com/payment 等,并且他们要键入 www.yahoo.com 并尝试离开,我们需要能够提醒用户他们正在从应用程序导航到其他站点。我们正在寻找一种方法来通过 Javascript(如果可能)或任何其他替代 .NET 方式来完成此任务。在最坏的情况下,我们甚至可以考虑使用 3rd 方工具(虽然不是首选)。
【问题讨论】:
标签:
javascript
asp.net
url
navigation
external
【解决方案1】:
您需要处理 javascript window 对象事件。谷歌 DOM 事件。
【解决方案2】:
我做过类似的工作,但在 IE 中工作。尽管该解决方案尚未经过验证,但对我有用。解决方案只是 window.onbeforeunload 事件上的 JS 函数。基本上我们这里需要考虑两件事:
- 如果用户在我们的网站区域之外点击意味着后退/前进按钮或关闭浏览器等 - window.event.clientY 将为负数。
- 如果我们的网站显示一些弹出窗口,请忽略它们,因为它是我们网站的一部分。
{
window.onbeforeunload = function (e)
{
var currUrl = document.URL;
e = e || window.event;
var y = e.pageY || e.clientY;
if (y < 0)
{
//call session end logic here
//check URL in case you have popup windows in your website
if (currUrl.indexOf('<popuppagename.aspx') >= 0 || ...)
return;
else
//user is navigating away so show alert
}
}