gpt4 book ai didi

javascript - 检查网站是否不允许嵌入 iframe

转载 作者:数据小太阳 更新时间:2023-10-29 04:09:28 25 4
gpt4 key购买 nike

我正在为我的应用程序编写一个类似灯箱的简单插件,我需要嵌入一个链接到任意页面的 iframe。问题是,许多网站(例如 facebook、nytimes,甚至 stackoverflow)会检查是否嵌入到框架中,如果是,将刷新页面并将其自身作为父页面。这是一个已知问题,我认为对此无能为力。但是,我希望能够事先知道站点是否支持嵌入。如果没有,我想在新选项卡/窗口中打开页面,而不是使用 iframe。

有什么技巧可以让我在 javascript 中检查这个吗?

也许有一个服务器端脚本可以检查链接以查看它们是否允许嵌入 iframe?

我正在开发一个浏览器扩展,所以有机会做一些非常有创意的事情。我的扩展程序加载到每个页面上,所以我认为有一种方法可以在 iframe url 中传递一个参数,如果它破坏了 iframe,扩展程序可以获取该参数。然后我可以将该域添加到不支持 iframe 嵌入的站点列表中。这可能有效,因为扩展没有加载到 iframe 中。我会努力解决这个问题,但与此同时......

澄清:

我愿意接受没有办法“破坏”“框架克星”的事实,即我知道我无法在 iframe 中显示不想显示在其中的页面。但我希望我的应用程序正常失败,这意味着如果不支持 iframe 嵌入,则在新窗口中打开链接。理想情况下,我想在运行时检查 iframe 嵌入支持(javascript),但我可以看到使用代理的潜在服务器端解决方案,如上面评论中所建议的那样。希望我可以建立一个不允许嵌入 iframe 的网站的数据库。

最佳答案

使用以下代码检查 x-frame-options header

$url = "http://stackoverflow.com";
$header = get_headers($url, 1);
echo $header["X-Frame-Options"];

如果返回值 DENY、SAMEORIGIN 或 ALLOW-FROM,则您不能将 iframe 与该 url 一起使用。

关于javascript - 检查网站是否不允许嵌入 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422300/

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