gpt4 book ai didi

javascript - 如何从外部网址检查 Iframe 的内容

转载 作者:行者123 更新时间:2023-11-30 06:04:38 24 4
gpt4 key购买 nike

我想在我的网站上使用 Facebook 的“赞”按钮。

众所周知,这很简单,但我对我们国家的审查制度有疑问。Facebook 在我们国家受到审查,如果我使用简单的 iframe,无法访问 Facebook(无法通过审查)的人将看到我不想看到的阻止页面。

所以我想检查加载的地址是否是 Facebook 向他们显示 iframe 否则(他们将被重定向到另一个网站)隐藏 iframe

我有什么办法可以查出来吗?我指的是地址、内容或 ID 等任何内容。


这是我的代码:

<html>
<head>
<title>facebook test</title>
<style>
.facebook{
display:none;
}
</style>
<script type="text/javascript" src="jquery.js"></script>

</head>
<script type="text/javascript">
$.ajax({
url: 'https://graph.facebook.com/btaylor?callback=?',
dataType: 'json',
success: function(data) {
$(".faceboock").show();
// alert('success - facebook works');
// alert('data = ' + JSON.stringify(data));
},
error: function() {
alert('error - facebook fails');
}
});
</script>

<div class="faceboock">
<iframe src="http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fpages%2Fmypage%2F152215541478267&amp;width=292&amp;colorscheme=light&amp;show_faces=true&amp;stream=true&amp;header=true&amp;height=427" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:427px;" allowTransparency="true"></iframe>
</div>

它在客户端可以访问 facebook 时起作用,我的意思是“成功:函数”起作用但错误函数不起作用。

问题是当 facebook 不可访问时 json 永远不会响应。

有没有办法设置响应超时或其他任何方式来处理错误?

最佳答案

您无法检查与您的代码不在同一域中的 iframe 的内容。

参见 Same Origin Policy

  • iframe.src 可以不受限制地检查,但是在重定向发生时不会改变
  • iframe.contentWindow.location.href 确实会在重定向发生时更改,但在您的情况下无法访问,因为上述安全限制

我能想到的唯一测试方法是:

  1. 做一个JSONP调用其中一个 Facebook API(JSONP 没有域限制)
  2. 检查响应
    如果这些 JSONP 调用也被重定向,那么它很可能会抛出异常而不是返回预期值(因为它会尝试将响应解析为 javascript,而响应很可能是完整的 html 页面)

这是一个working example使用 jQuery 执行 JSONP 调用。
它在我的位置工作,你能测试一下,看看你是否收到错误警报吗?
您也可以在浏览器中转到示例中的 url。如果 facebook.com 被重定向,但这个没有,那么您将不得不找到其他方法来检查它...

关于javascript - 如何从外部网址检查 Iframe 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5889585/

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