现在我有了一个站点:
www.abc.com
我在这里提供观看视频或一些书面内容的链接。但是内容在:
www.xyz.com
例如,我有一个视频嵌入在页面www.xyz.com/tops/
的iframe中,可以通过url www.xyz.com/tops/pqrs.php?file=123456
查看。现在我希望在www.xyz.com/tops/
页面上的iframe对来自www.abc.com的人可见。对于直接访问www.xyz.com/tops/
页面的其他人,除了嵌入在该页面中的iframe之外,所有内容都应该是可见的。在那个页面上也有其他内容....在所有内容之间,我嵌入了这个iframe元素。因此,对于每个直接访问www.xyz.com/tops/
页面的人来说,除了嵌入在该页面的iframe之外,所有内容都应该是可见的。
我如何做到这一点?
谢谢:)
我现在将尝试以下两种方法。与此同时,在搜索一些网站,做什么我确实需要,我找到了一个。主要网址为:
www.siteA.com
链接被放置在:
http://siteA.com/redirector.php?r=http://siteB.com/Page/& s = 123456
当我点击链接时,它把我带到:
http://siteB.com/Page/
,相关视频正在iframe中播放。我检查源代码。我在iframe嵌入的地方发现了这个:
<div style="padding: 6px">
</div>
<div id="showvideoplayer"></div>
<div id="container"></div>
<iframe frameborder='0' width='730' height='415' src='http://www.dailymotion.com/embed/video/somecode'></iframe> <div style='padding: 8px'>
</div>
现在我只是通过点击地址栏然后按回车键重新加载页面(不是通过按F5或重新加载按钮)。现在视频是不可见的,但其他页面的内容是一样的。我现在再次检查了源代码:
<div style="padding: 6px">
</div>
<div id="showvideoplayer"></div>
<div id="container"></div>
这次iframe元素不在那里。就连我也想这么做。但如何? www139答案的扩展版:
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
//...
if ($_SESSION["origURL"] !== "www.xyz.com/tops/") {
echo "<iframe>..."
}
注意,这将只工作,如果URL是"www.xyz.com/tops/"。使用正则表达式包含所有大小写
节选自:https://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/
在xyz.com页面上,有一个检测父url的脚本,并显示你感兴趣的内容,如果它是框架的或不是。
function getParentUrl() {
var isInIframe = (parent !== window),
parentUrl = null;
if (isInIframe) {
parentUrl = document.referrer;
}
return parentUrl;
}
注意这个方法并没有提供一种安全的方式来阻止用户看到内容,只是方便地显示和隐藏内容。