gpt4 book ai didi

php - 我如何通过 php 检查当前窗口是否为 "top"(或 "parent")?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:54 24 4
gpt4 key购买 nike

如果在父浏览器窗口中查看当前页面,我需要显示一个链接,或者如果在 iframe 中查看窗口,我需要显示另一个链接。我怎样才能通过 php 做到这一点?像这样的东西:

if (self == top)
echo '<span><a href="./" >Link1</a></span>';
else
echo '<span><a href="./index.php">Link2</a></span>';

编辑:因为它不能用 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>
';

谢谢大家

最佳答案

不能用 PHP 做到这一点;它是一种服务器端语言,而不是客户端语言。因为它取决于客户端如何处理窗口,所以服务器对此一无所知。您可以在 AJAX 请求中发回一些内容,然后重新加载页面,但这是一个困惑、糟糕的解决方案。

要检测您是否在顶层窗口中,您需要这样做:

if(window.top == window.self) {
// Top level window
} else {
// Not top level. An iframe, popup or something
}

您在问题中给出的示例非常接近。 window.top是栈顶窗口,window.self是当前JS和DOM所在的窗口。

关于php - 我如何通过 php 检查当前窗口是否为 "top"(或 "parent")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com