说,我有一个网址为site.com。我如何知道推荐人是否从iframe获取我的网址,如下所示:
<iframe src="http://site.com"></iframe>
或推荐人点击(!!)某个网站上的此链接,其中链接是常用的标记:<a href="http://site.com">go to site</a>
?
我想在服务器端告诉那两者。也许,有一种方法可以通过JS做到这一点?提前谢谢。
答案 0 :(得分:2)
可以在javascript中完成,但不能直接在服务器端完成。但是,您可以通过使用简单的javascript重定向这两种情况之一来将此信息传递给服务器:
if (window.self === window.top) {
// you're not in an iframe
} else {
// in an iframe (or other frames), act accordingly
}
或者,如果您只是想阻止在iframe中查看您的网站,可以通过发送X-Frame-Options header来执行此操作。
答案 1 :(得分:0)
Javascript只是客户端(除非您使用的是Node.js),因此无法在服务器端告知是否正在从iframe或普通超链接引用某些内容。
你想要这样做的原因是什么?看起来你似乎必须找到解决问题的另一种方法。
答案 2 :(得分:0)
如果您试图阻止您的网站显示在iframe中,那么您可以使用破解框脚本的最佳方法之一。 (请注意,您的网络服务器仍会发出请求/响应)。
在您希望不被“框架化”的任何文档的<head>
中包含以下内容。
<style id="antiClickjack">body{display:none !important;}</style>
<script type="text/javascript">
if (self === top) {
var antiClickjack = document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>