pis*_*hio 19 html c# asp.net asp.net-mvc
如果加载的页面在iframe中,我如何检测服务器端(c#,asp.net mvc)?谢谢
小智 18
但是,这是不可能的.
<iframe src="mypage?iframe=yes"></iframe>
Run Code Online (Sandbox Code Playgroud)
如果查询字符串包含iframe = yes或浏览器发送Referer标头,则检查服务器端.
在表单中使用以下代码:
<asp:HiddenField ID="hfIsInIframe" runat="server" />
<script type="text/javascript">
var isInIFrame = (self != top);
$('#<%= hfIsInIframe.ClientID %>').val(isInIFrame);
</script>
Run Code Online (Sandbox Code Playgroud)
然后,您可以轻松检查它是否是代码隐藏中的iFrame:
bool bIsInIFrame = (hfIsInIframe.Value == "true");
Run Code Online (Sandbox Code Playgroud)
经过测试并为我工作.
编辑:请注意,您需要jQuery来运行我的代码.要在没有jQuery的情况下运行它,只需使用一些代码,如下面的(未经测试的)代码来设置隐藏字段的值:
document.getElementById('<%= hfIsInIframe.ClientID %>').value = isInIFrame;
Run Code Online (Sandbox Code Playgroud)
编辑2:这仅在页面加载一次时有效.如果有人有想法改进这一点,请告诉我.在我的情况下,我幸运地只需要回发后的值.
归档时间: |
|
查看次数: |
12739 次 |
最近记录: |