如何使用 javascript 了解页面是否作为 iframe(外部站点)加载?

发布于 2024-10-02 08:59:55 字数 256 浏览 1 评论 0原文

我正在尝试找到一个可靠的解决方案来确定我的页面是否使用 javascript 加载到外部站点的 iframe 中。

如果 iframe src 位于同一域,则非常简单:您可以使用 if (window.frameElement) 或 if (window.location !== window.parent.location) 但如果 iframe src 不在同一域上,所有现代浏览器都会抛出错误访问父级甚至将其与 null 进行比较时出现异常。

我完全迷路了。

I'm trying to find a reliable solution to determine if my page was loaded in iframe on external site using javascript.

If iframe src located on the same domain it's preaty easy: you can use if (window.frameElement) or if (window.location !== window.parent.location) but if iframe src is not on the same domain all modern browsers throw exception when accessing parent and even comparing it with null.

I'm totally lost.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

带刺的爱情 2024-10-09 08:59:55

您可能对编码恐怖条目感兴趣:我们完成了加框。提供了有关该主题的有趣技术讨论,包括解决方案和框架破坏-破坏。

You might be interested in the Coding Horror entry: We Done Been Framed. Offers an interesting technical discussion on this topic, including solutions, and frame-busting-busting.

彩虹直至黑白 2024-10-09 08:59:55

您可以将验证 (window.location !== window.parent.location / window.frameElement) 包装在 try-catch 语句中,您可以使用该语句自己处理异常。

You can wrap your validation (window.location !== window.parent.location / window.frameElement) in try-catch statement which you can use to handle the exception yourself.

狼亦尘 2024-10-09 08:59:55

为什么不尝试使用以下函数

var element = window.parent.document
if (element) return "位于父窗口中" else "不在父窗口中";

Why don't you try a function with the following

var element = window.parent.document
if (element) return "Is in a parent window" else "is not in a parent window";

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文