Asp.net 服务器端检测页面显示在IFrame中
是否可以确定服务器端页面是否已加载到Asp.net 服务器端检测页面显示在IFrame中,asp.net,iframe,Asp.net,Iframe,是否可以确定服务器端页面是否已加载到IFrame中 当我的应用程序中出现某些错误时,用户将被重定向到Default.aspx,并显示一条错误消息。该错误消息的文本在会话中由异常处理代码设置。显示错误消息后,该消息将从会话中清除 但是,我的应用程序的一部分必须使用IFrame(它正在执行3D安全卡支付检查,这要求使用IFrame,以显示卡提供商的身份验证UI)。如果在此过程中发生错误,我的重定向将在IFrame中生效。我正在使用JavaScript检测并正确地重新加载Default.aspx,但这
IFrame
中
当我的应用程序中出现某些错误时,用户将被重定向到Default.aspx
,并显示一条错误消息。该错误消息的文本在会话中由异常处理代码设置。显示错误消息后,该消息将从会话中清除
但是,我的应用程序的一部分必须使用
IFrame
(它正在执行3D安全卡支付检查,这要求使用IFrame
,以显示卡提供商的身份验证UI)。如果在此过程中发生错误,我的重定向将在IFrame
中生效。我正在使用JavaScript检测并正确地重新加载Default.aspx
,但这意味着我会连续快速地加载两次Page\u
,并且错误消息只在第一次加载时显示(然后清除)。我认为您无法检测到具有某种Page.IsInIFrame()功能的情况,但是你可以考虑对那些在iFrAME中加载的页面有不同的基类,而那些不知道错误的是来自IFRAME页面的请求,这在某种程度上是有帮助的。 < P>服务器端是没有办法的。唯一的方法是通过javascript。在执行重定向时,是否可以通过查询字符串传递错误消息或代码?使用带window.location的Javascript进行重定向是否有效?强制整页重定向?您可以在客户端执行此操作:
我发现的解决方法是在iframe内部打开的url的查询字符串中放入一些标识符。这是不可能的,因为客户端可以在禁用javascript的情况下打开iframe 只需检查当前页面的url即可。。 如果与IFrame页面相同,则重定向到Default.aspx或其他任何页面
Dim urlpath1 As String = HttpContext.Current.Request.Url.AbsoluteUri
If Right(urlpath1, 13) = "WebForm1.aspx" Then
Response.Redirect("~/")
Else
Response.Write("It's OK!")
End If
Mozilla开发者网络。事实上,我想我只是用这个打开了一整罐蠕虫,在我知道发生了什么之前,我不应该在这里添加我的信息,对不起。(请参阅)请注意,您需要使用Request.urlReferer,而不是Request.Url作为Request.Url。Url将返回iframe Url。@RonenFestinger,当您单击iframe中的链接时,它将不起作用,但是,referer和Url将是相同的。