Luc*_*tos 4 javascript php window
如果在父浏览器窗口中查看当前页面,我需要显示链接,或者如果在iframe中查看窗口,则显示另一个链接.我怎么能通过PHP做到这一点?就像是:
if (self == top)
echo '<span><a href="./" >Link1</a></span>';
else
echo '<span><a href="./index.php">Link2</a></span>';
Run Code Online (Sandbox Code Playgroud)
编辑:因为它不能用PHP完成,我仍然在寻找类似的解决方案,也许JS,有人可以告诉我如何?
最终编辑:答案:
echo '
<script type="text/javascript">
if(window === top) {
document.write("<span><a href=\"./\">go-to-frame</a></span>");
}
else {
document.write("<span><a href=\"./index.php\">go-to-top</a></span>");
}
</script>
';
Run Code Online (Sandbox Code Playgroud)
谢谢你们.
Boj*_*les 20
你不能用PHP做到这一点; 它是服务器端语言,而不是客户端语言.因为它取决于客户端如何处理窗口,所以服务器对此一无所知.您可以在AJAX请求中发送回来然后重新加载页面,但这是一个混乱,可怕的解决方案.
要检测您是否在顶级窗口中,您需要执行以下操作:
if(window.top == window.self) {
// Top level window
} else {
// Not top level. An iframe, popup or something
}
Run Code Online (Sandbox Code Playgroud)
你对你在问题中给出的例子非常接近.window.top是堆栈的最顶层窗口,window.self是当前JS和DOM所在的窗口.